Pythonを使用してランダムなバイナリファイルを作成しようとしています。これは私がすでに持っているものです:
f = open(filename,'wb')
for i in xrange(size_kb):
for ii in xrange(1024/4):
f.write(struct.pack("=I",random.randint(0,sys.maxint*2+1)))
f.close()
しかし、それはひどく遅いです(私の3.9GHzSSDディスクマシンのsize_kb=1024の場合は0.82秒)。大きなボトルネックは、ランダムなint生成のようです(randint()を0に置き換えると、実行時間が0.82秒から0.14秒に短縮されます)。
ランダムデータファイル(つまり、dd if = / dev / urandom)を作成するより効率的な方法があることはわかっていますが、好奇心のためにこれを理解しようとしています...これを改善する明白な方法はありますか?