您的位置:首页 > 编程语言 > Python开发

用Python生成测试数据

2015-05-25 17:41 295 查看
有时我们需要大量的数据,一般编个程序生成一堆随机数据,Python很适合文本处理,干这个很方便。

下面程序生成一千万条数据,空格分开。

一条数据长度随机,平均38个字节左右,总共生成370MB左右的数据文件,用时23分钟左右。

测试了哪个地方是性能瓶颈,发现用时最长是genRandomName函数,而且每条数据调用两次,第二长的是genRandomDay。

genRandomName 用时是 genRandomDay 的 7倍,genRandomDay 里也没什么可优化的,所以重点优化genRandomName。

在Python中尝试了几种方法:

1.先生成字符列表,再join,而不是用+。

2.用random.sample。

提高速度都不明显,小于10%。

后来发现不做字符串操作,速度也提高有限,random操作看来比较耗时间。

于是写了一个c语言dll,通过ctypes使用,提高速度明显,同样是一千五条,用时8.65分钟。

c_dll是用c实现的生成任意长度的随机字符串的函数,编译成dll,放到Python程序相同目录下调用。

后来,用c实现的randInt函数代替Python的,用时5.3分钟,相对原来23分钟,速度提高4.34倍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: