该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-04
最后修改:2009-05-04
我的第一篇帖子就已经说得很清楚了:
数据处理要求是这样的,分3大步: 1.有一个等待发送状态报告文件来匹配数据的文件,里面包含得有 移动发往联通 wait-status.csv 中第一个字段为3 和 联通发往移动 wait-status.csv 中第一个字段为4 的所有记录 首先读取等待状态报告文件中的数据到哈希表中去,根据第一个字段为3或者4取不同的字段作为key放入到2个不同的(发送和接收)哈希表中 2.然后读取状态报告文件 status.csv 的每一行,根据第一个字段作为KEY尝试去取2个哈希表中的数据, 取得到数据就根据是从哪个哈希表中取出的分别放到2个不同的数组(发送和接收)中去 取不到就丢弃 3.然后把这2个不同的数组中的每条数据转换组合后写到文件中(发送GMO,接收GMT)去就OK了 其实有什么说明比代码更清楚呢,才百把行代码,最繁琐的就是format_data中转换格式的代码了,数据格式为附件中所述 呵,提高50倍,我原来的RUBY代码在我的X60上处理100万条数据是270秒(50万是125秒左右),提高50倍,那就是5.4(2.5)秒就处理完咯(不知道在你的机子上优化前跑了多少秒,除以50应该就是优化后的结果了),不错不错,看样子是碰到奥数成员了,我要好好学习下,闭嘴也认了,到时候就封帖... |
|
返回顶楼 | |
发表时间:2009-05-04
引用 今天的测试结果: 测试120万条记录,PYTHON跑了40多秒 RUBY跑了350多秒. 200万记录的测试,可能量变引起质变吧,python跑了55秒,RUBY跑了855秒. 晕,当时看了这里…… 可能要我shutup了 OK,最后你需要的是什么结果? 文件要保存什么数据? |
|
返回顶楼 | |
发表时间:2009-05-04
最后修改:2009-05-04
没事,你只处理30万,50万的数据量也行的(再少就比较不出了,起码10万数据PYTHON都是0秒,RUBY是19秒左右,我也晕了,怎么10万数据差别还更大,原来我可还真没有比较只处理10万的量),也够常用的数量级了,结果就是保存格式化后,符合附件规范的文本文件啊
哦,SORRY,处理10万PYTHON是2秒左右,因为我在第3步处理前加了个运行时间提示,看晃了... |
|
返回顶楼 | |
发表时间:2009-05-04
翘首观望中,谁输谁赢,下注了
|
|
返回顶楼 | |
发表时间:2009-05-04
xukong 写道 没事,你只处理30万,50万的数据量也行的(再少就比较不出了,起码10万数据PYTHON都是0秒,RUBY是18秒左右,我也晕了,怎么10万数据差别还更大,原来我可还真没有比较只处理10万的量),也够常用的数量级了,结果就是保存格式化后,符合附件规范的文本文件啊
你起码要提供数据呀? |
|
返回顶楼 | |
发表时间:2009-05-04
最后修改:2009-05-04
呵,兄台,我真不知道你是怎么看帖子的,我页面上早就列出了3个脚本,压缩包里面也有对应的3个文件...
也早就有了相关说明: 执行 MakeTestData.py 指定数字 生成指定数字条数的测试话单,比如 MakeTestDagta.py 1200000 就生成120万条数据,里面的数据没有任何意义,就是为了达到测试量的数据而已,为了方便,发送和接收数据都设置为指定数据的一半. 你准备在LINUX下测试?我看你回帖是在ARCH下跑的,听说RUBY在LINUX性能会好点?我个人习惯用UBUNTU,呵... |
|
返回顶楼 | |
发表时间:2009-05-04
xukong 写道 呵,兄台,我真不知道你是怎么看帖子的,我页面上早就列出了3个脚本,压缩包里面也有对应的3个文件...
执行 MakeTestData.py 指定数字 生成指定数字条数的测试话单,比如 MakeTestDagta.py 1200000 就生成120万条数据,里面的数据没有任何意义,就是为了达到测试量的数据而已,为了方便,发送和接收数据都设置为指定数据的一半. 你准备在LINUX下测试?我看你回帖是在ARCH下跑的,听说RUBY在LINUX性能会好点?我个人习惯用UBUNTU,呵... 没钱人,用不起 Windows …… PS:你不说我怎么知道…… |
|
返回顶楼 | |
发表时间:2009-05-04
wosmvp 写道 xukong 写道 呵,兄台,我真不知道你是怎么看帖子的,我页面上早就列出了3个脚本,压缩包里面也有对应的3个文件...
执行 MakeTestData.py 指定数字 生成指定数字条数的测试话单,比如 MakeTestDagta.py 1200000 就生成120万条数据,里面的数据没有任何意义,就是为了达到测试量的数据而已,为了方便,发送和接收数据都设置为指定数据的一半. 你准备在LINUX下测试?我看你回帖是在ARCH下跑的,听说RUBY在LINUX性能会好点?我个人习惯用UBUNTU,呵... 没钱人,用不起 Windows …… PS:你不说我怎么知道…… 呵,呵,我想说也说不了啊,所以我写了,但是你不知道怎么没看见我也没有办法啊... |
|
返回顶楼 | |
发表时间:2009-05-04
wosmvp 写道 xukong 写道 呵,兄台,我真不知道你是怎么看帖子的,我页面上早就列出了3个脚本,压缩包里面也有对应的3个文件...
执行 MakeTestData.py 指定数字 生成指定数字条数的测试话单,比如 MakeTestDagta.py 1200000 就生成120万条数据,里面的数据没有任何意义,就是为了达到测试量的数据而已,为了方便,发送和接收数据都设置为指定数据的一半. 你准备在LINUX下测试?我看你回帖是在ARCH下跑的,听说RUBY在LINUX性能会好点?我个人习惯用UBUNTU,呵... 没钱人,用不起 Windows …… PS:你不说我怎么知道…… 看不懂之间的逻辑~ |
|
返回顶楼 | |
发表时间:2009-05-04
最后修改:2009-05-04
seraphim871211 写道 wosmvp 写道 xukong 写道 呵,兄台,我真不知道你是怎么看帖子的,我页面上早就列出了3个脚本,压缩包里面也有对应的3个文件...
执行 MakeTestData.py 指定数字 生成指定数字条数的测试话单,比如 MakeTestDagta.py 1200000 就生成120万条数据,里面的数据没有任何意义,就是为了达到测试量的数据而已,为了方便,发送和接收数据都设置为指定数据的一半. 你准备在LINUX下测试?我看你回帖是在ARCH下跑的,听说RUBY在LINUX性能会好点?我个人习惯用UBUNTU,呵... 没钱人,用不起 Windows …… PS:你不说我怎么知道…… 看不懂之间的逻辑~ 应该是回答我"你准备在LINUX下测试?"的,不错啊,在盗版横行的国内内忍受方便的盗版WIN的诱惑,只用LINUX,很好的了,我工作上的机子是正版的,家里的是蕃茄, 不过我也尽量买了正版软件的,嘿,嘿,原来买了KV200,买过一年的卡巴,买过QIM |
|
返回顶楼 | |