欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

生成大量隨機(jī)字符串不同實(shí)現(xiàn)方式的效率對(duì)比 - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 技術(shù)分享 >

生成大量隨機(jī)字符串不同實(shí)現(xiàn)方式的效率對(duì)比

發(fā)表時(shí)間:2020-10-18

發(fā)布人:葵宇科技

瀏覽次數(shù):67

 在26位英文字母中隨即選取10個(gè)字符組成字符串,產(chǎn)生一定數(shù)量的唯一字符串,對(duì)比幾種方式:

1.使用 System.Security.Cryptography.RNGCryptoServiceProvider 生成 Random 的種子 和 使用普通聲稱(chēng)隨機(jī)數(shù)進(jìn)行對(duì)比.

2.使用 IDictionary<TKey , TValue> 其中TKey是 Int 型 存放字符串的HashCode,TValue 是 String 型,存放生成的字符串,通過(guò)對(duì)比鍵判斷是否項(xiàng)是否已經(jīng)存在 和 使用 IList<T> 存儲(chǔ)字符串進(jìn)行對(duì)比.

3.使用隨機(jī)截取字符串 和 隨機(jī)字符串?dāng)?shù)組索引獲取組成字符串. 生成構(gòu)建 Random 實(shí)例種子的方法:

static int GetRandomSeed( ) {         byte[] bytes = new byte[4];         System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider( );         rng.GetBytes( bytes );         return BitConverter.ToInt32( bytes , 0 ); } 生成隨機(jī)字符串的方法: static string GetRandomString( ) {         StringBuilder sbPwd = new StringBuilder( );         Random random = new Random( GetRandomSeed( ) );         for ( int i = 0 ; i < length ; i++ )         {             sbPwd.Append( strSource.Substring( random.Next( 0 , 25 ) , 1 ) );             //sbPwd.Append( sourceArray[random.Next( 0 , 25 )] );         }         return sbPwd.ToString( ); }

對(duì)比結(jié)果: 1.使用 GetRandomSeed( )方法生成 Random 種子 并使用字符截取 使用IDictionary<int , string> 耗時(shí) 20688MS  產(chǎn)生重復(fù)項(xiàng) 359  生成項(xiàng):1000000 2.不使用 GetRandomSeed( )方法生成 Random 種子 并使用字符截取 使用IDictionary<int , string>  耗時(shí) 1562547MS  產(chǎn)生重復(fù)項(xiàng) 127749442  生成項(xiàng):100000 3.使用 GetRandomSeed( )方法生成 Random 種子 并使用字符串?dāng)?shù)組 使用IDictionary<int , string>  耗時(shí)36125MS  產(chǎn)生重復(fù)項(xiàng) 381  生成項(xiàng):1000000(使用Char數(shù)組效率更低,隨機(jī)取得Char轉(zhuǎn)換成String時(shí)要進(jìn)行裝箱) 4.使用GetRandomSeed( )方法生成 Random 種子 并使用字符截取 使用IList<string> 耗時(shí) 214719MS  產(chǎn)生重復(fù)項(xiàng)2 生成項(xiàng):100000(生成項(xiàng)越多耗時(shí)越長(zhǎng)) 可見(jiàn)使用 System.Security.Cryptography.RNGCryptoServiceProvider 生成 Random 種子 產(chǎn)生的效率要高很多,特別是要連續(xù)生成大量的隨機(jī)數(shù),因?yàn)?Random 生成值的重復(fù)率非常低. 使用字符串的HashCode對(duì)比字符串比直接對(duì)比字符串效率要高很多. 使用字符串截取比使用字符串?dāng)?shù)組效率要高點(diǎn). function forumhottag_callback(data){ tags = data; } parsetag();

 
昆明軟件開(kāi)發(fā)公司中的佼佼者,致力定制軟件開(kāi)發(fā),昆明軟件開(kāi)發(fā)請(qǐng)聯(lián)系昆明葵宇科技有限公司,電話(huà):15987118523。

相關(guān)案例查看更多