用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倍。
下面程序生成一千万条数据,空格分开。
一条数据长度随机,平均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倍。
相关文章推荐
- Python:随机生成测试数据的模块--faker的基本使用
- python3生成测试数据,并写入ssdb
- python生成CMPL16类型随机定标测试数据并输出到文件
- Python测试用例生成脚本(合并相应单元格以及写入单行数据)代码实例
- Python 脚本生成测试数据,Python生成随机数据,Python生成大量数据保存到文件夹中
- Python本地生成MySQL百万级测试数据
- Python_生成测试数据
- Python_生成测试数据
- Python_生成测试数据
- python 生成测试数据点(带有标签的线性可分和线性不可分)
- Python测试用例生成脚本(合并相应单元格以及写入单行数据)代码实例
- 【用Python学习Caffe】3. 图像训练测试数据集LMDB的生成
- python结合Arcpy处理EXCEL数据生成多边形
- 使用python生成oracle数据报表
- python调用HTMLTestRunner+unittest实现一次执行多个测试类,并生成与每个测试类对应的测试报告,并不像某些人写的每次只执行一个测试类,具体看代码,附上整个project代码
- 使用caffe 的 python接口测试数据,选定GPU编号
- ACM题目测试数据生成方法(个人经验)
- Python3随机漫步生成数据并绘制
- python生成u8glib中文字体数据
- mysql使用循环生成测试数据