我正在尝试使用 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.9GHz SSD 磁盘机器上 size_kb=1024 为 0.82 秒)。一个很大的瓶颈似乎是随机 int 生成(用 0 替换 randint() 将运行时间从 0.82 秒减少到 0.14 秒)。
现在我知道有更有效的方法来创建随机数据文件(即 dd if=/dev/urandom),但出于好奇,我正在尝试解决这个问题……有没有明显的改进方法?