基本的に、300 個の値とそれぞれに関連付けられた異なる平均のリストがあります。
これらの値の 10 個のリストをfor
ランダムに生成し、それらの平均に基づいて特定の条件が満たされている場合にそれを書き出す - ループがあります。
ループ回数が 1000 万回以下であればコードは正常に実行されますが、それは桁違いに小さすぎます。for ループ カウンターを 2 倍の 2000 万にしただけでも、実行中のコンピューターは使用できなくなります。
ループを1億回または10億回繰り返したい。バックグラウンドでゆっくり実行したいのですが、結果が出るまでに 24 時間かかってもかまいません。作業中にコンピュータを使用したいだけです。現在、for ループが 1,000 万を超えると、ラップトップのメモリとディスクの使用率は 99% になります。
pyScripter
および python 3.3 の使用
Comp スペック: Intel Core i7 4700HQ (2.40GHz) 8GB メモリ 1TB HDD NVIDIA GeForce GTX 850M 2GB GDDR3
コードスニペット:
for i in range( 0, cycles ):
genRandLineups( Red ); #random team gens
genRandLineups( Blue );
genRandLineups( Purple );
genRandLineups( Green );
if sum( teamAve[i] ) <= 600
and ( ( sum( teamValues[i] ) > currentHighScore )
or sum( teamValues[i] ) > 1024
):
teamValuesF.append( teamValues[i] )
sheetw.write( q, 0, str( teamValues[i] ) )
ts = time.time()
workbookw.save( "Data_Log.xls" )
st = datetime.datetime.fromtimestamp( ts ).strftime( '%Y-%m-%d %H:%M:%S' )
sheetw.write( q, 3, st )
q = q + 1
if sum( teamValues[i] ) > currentHighScore:
currentHighScore = sum( teamValues[i] )