N久以前的事了。用纯P写,总是没达到要求。[任意7位数,以大定字母开头,后6位为大小写字母和数字的任意组合]
现在用 Powershell 写。不开多任务,约3秒多点 完成10000次,7秒多点 20000次 10秒30000次,也算符合要求。
如何把开头的字符数组直接写,不用 toCharArray()分割.可以少约 1秒。- $time=get-date
- $ULetter=@('ABCDEFGHIJKLMNOPQRSTUVWXYZ'.toCharArray())
- $DigitLetter=@('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.toCharArray())
- while ($num -lt 10000){
- [Collections.ArrayList]$random=@(get-random -input $ULetter) #大写字母开头
- $random+=get-random -input $DigitLetter -count 6 #数字和大小写字母
- $str=-join $random #用 + 的方法连接字符约少 0.2秒。
- #if($str -match '(\d+){1,}') { #至少包含一位数字
- $str
- $num++
- #}
- }
- ([datetime]::now - $time).TotalMilliSeconds
- pause
复制代码
|