该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-04
Hooopo 写道 这的确是ruby代码,,lz那如果不标明是ruby还真认不出来。。。 冏,Ruby代码也不会挂个牌 duker 写道 已经有权威的测试数据说明python 是所有动态语言中最快的..
现在django已经成熟了.作为快速web开发是一个不错的选择.. ------------------------------- 程序员代码管理 http://mysharecode.appspot.com/ gwt中使用flash http://code.google.com/p/gwt-flash-bridge/ 注意:我没有尝试比较过 Python 与 Ruby,孰优孰劣,每个人都有自己适合的选择 PS: 更多情况下技术其实什么也不决定,现在你就是用C开发个快一万倍的twitter,也不会让Google来收购你 快速实现,再改进才是最重要的,要不 Twitter 现在那有时间来骂 Rails 可扩展性不好…… |
|
返回顶楼 | |
发表时间:2009-05-04
最后修改:2009-05-04
呃,辛苦,辛苦,看了运行了你的代码,我承认你对RUBY的了解比我多,RUBY代码写得比我高效,不过你的程序已经几乎抛弃了程序对数据的逻辑判断处理,纯粹就是写数据的程序,当然加上那些逻辑应该也影响不到什么速度了,呵,反正这里只讨论性能...
不过我个人还是比较注重程序可读性,而且你改进过的RUBY和现有的PYTHON代码还是有差距,当然这个差距没有我原来认为的那么大了,呵,也就是网上评论的2到3倍(测试数据50万),有时间我也仔细看看书查下资料,希望能将这个程序的PYTHON版本性能改进得更好. 不过我贴的代码146行之前也就是前2步,做的都是比较简单的字符串操作,差距还是蛮大的啊,再研究吧... 通过这次发帖,我的认识是对这些脚本语言的新特性还是了解得不够,还是按以前的常规思路来写程序,几乎等于没有学到什么新的东西,换汤不换药而已,以后要改正. 呵,前面我也说了,程序写得不够高效,那我更要选个能让不够高效的程序跑得快的语言了(嗯,继续学习,希望以后不再轻发妄言,惭愧,惭愧)... 这次讨论谢谢WHOSMVP,谢谢大家的参与,封帖,也就不改什么了,看到算是对自己的警醒吧... |
|
返回顶楼 | |
发表时间:2009-05-04
如果lua算动态语言的话,他的测试比python要快。
|
|
返回顶楼 | |
发表时间:2009-05-04
最后修改:2009-05-04
学过一阵python。
看完整本dive into python还是不知所以然,感觉这个语言有够奇怪,和OZ有的一拼,就是一个为了别人有xx所以我也要有xx的大杂烩。 事实证明,不碰python是对的,python也火不了,google再怎么忽悠也无济于事,所以现在app engine只能灰溜溜的回头支持java了。 python不是未来,大家不要在这个上面浪费时间了。 |
|
返回顶楼 | |
发表时间:2009-05-04
最后修改:2009-05-04
xukong 写道 呃,辛苦,辛苦,看了运行了你的代码,我承认你对RUBY的了解比我多,RUBY代码写得比我高效,不过你的程序已经几乎抛弃了程序对数据的逻辑判断处理,纯粹就是写数据的程序,当然加上那些逻辑应该也影响不到什么速度了,呵,反正这里只讨论性能...
不过我个人还是比较注重程序可读性,而且你改进过的RUBY和现有的PYTHON代码还是有差距,当然这个差距没有我原来认为的那么大了,呵,也就是网上评论的2到3倍(测试数据50万),有时间我也仔细看看书查下资料,希望能将这个程序的PYTHON版本性能改进得更好. 不过我贴的代码146行之前也就是前2步,做的都是比较简单的字符串操作,差距还是蛮大的啊,再研究吧... 通过这次发帖,我的认识是对这些脚本语言的新特性还是了解得不够,还是按以前的常规思路来写程序,几乎等于没有学到什么新的东西,换汤不换药而已,以后要改正. 呵,前面我也说了,程序写得不够高效,那我更要选个能让不够高效的程序跑得快的语言了(嗯,继续学习,希望以后不再轻发妄言,惭愧,惭愧)... 这次讨论谢谢WHOSMVP,谢谢大家的参与,封帖,也就不改什么了,看到算是对自己的警醒吧... 关于逻辑问题,我觉得下面帖子里的代码优化,可以说明一点点问题。不是if else多,逻辑就清晰的。 动态语言的逻辑跟Java那种逻辑,不能一概而论。 http://www.iteye.com/topic/247944 |
|
返回顶楼 | |
发表时间:2009-05-05
楼主如果说成“从实际工作经历说说我选择Ruby的原因”,估计又得有个Python界的wosmvp跳出来“打压”一下了——你小子多少斤两,竟敢这么嚣张。
不过,热爱技术的人多少都会有些傲气,很正常,理解。 感谢楼主的分享精神和“牺牲”精神。 |
|
返回顶楼 | |
发表时间:2009-05-05
xiaolin0105 写道 学过一阵python。
看完整本dive into python还是不知所以然,感觉这个语言有够奇怪,和OZ有的一拼,就是一个为了别人有xx所以我也要有xx的大杂烩。 事实证明,不碰python是对的,python也火不了,google再怎么忽悠也无济于事,所以现在app engine只能灰溜溜的回头支持java了。 python不是未来,大家不要在这个上面浪费时间了。 呵 这位同学这时候跳出来张牙舞爪了 事实证明还是有差距而已 我不太在乎性能 解决问题就好 别人可不一定这么看 按需选择就好 Py用的人多了去 难到只有你是聪明人 看透了未来? 也不存在牺牲 我写的代码确实没有 怎么说呢 也许可说是 没有不同语言的味道 没有发挥不同语言的优势而已 比如用C 不用指针?呵… |
|
返回顶楼 | |
发表时间:2009-05-05
最后修改:2009-05-05
Xorcerer 写道 xukong 写道 呃,辛苦,辛苦,看了运行了你的代码,我承认你对RUBY的了解比我多,RUBY代码写得比我高效,不过你的程序已经几乎抛弃了程序对数据的逻辑判断处理,纯粹就是写数据的程序,当然加上那些逻辑应该也影响不到什么速度了,呵,反正这里只讨论性能...
不过我个人还是比较注重程序可读性,而且你改进过的RUBY和现有的PYTHON代码还是有差距,当然这个差距没有我原来认为的那么大了,呵,也就是网上评论的2到3倍(测试数据50万),有时间我也仔细看看书查下资料,希望能将这个程序的PYTHON版本性能改进得更好. 不过我贴的代码146行之前也就是前2步,做的都是比较简单的字符串操作,差距还是蛮大的啊,再研究吧... 通过这次发帖,我的认识是对这些脚本语言的新特性还是了解得不够,还是按以前的常规思路来写程序,几乎等于没有学到什么新的东西,换汤不换药而已,以后要改正. 呵,前面我也说了,程序写得不够高效,那我更要选个能让不够高效的程序跑得快的语言了(嗯,继续学习,希望以后不再轻发妄言,惭愧,惭愧)... 这次讨论谢谢WHOSMVP,谢谢大家的参与,封帖,也就不改什么了,看到算是对自己的警醒吧... 关于逻辑问题,我觉得下面帖子里的代码优化,可以说明一点点问题。不是if else多,逻辑就清晰的。 动态语言的逻辑跟Java那种逻辑,不能一概而论。 http://www.iteye.com/topic/247944 帖子看了 这个我觉得是语句技巧问题了 如果需要写出一句话解决一些问题的方法 自然有人去钻研 我个人觉得 和逻辑没多大关系 比如这个例子中的逻辑就是解析一个个Url然后下栽 用一条语句还是多条语句实现 实现的都是这个逻辑 你的最后句话我没太明白处理逻辑会不一样 可以先下载再一条条解析Url? |
|
返回顶楼 | |
发表时间:2009-05-05
pipilu 写道 楼主如果说成“从实际工作经历说说我选择Ruby的原因”,估计又得有个Python界的wosmvp跳出来“打压”一下了——你小子多少斤两,竟敢这么嚣张。
不过,热爱技术的人多少都会有些傲气,很正常,理解。 感谢楼主的分享精神和“牺牲”精神。 也不存在什么打压,自己确实没有发挥RUBY的性能(虽然更多的实际问题的解决不会只用到这么简单的代码),只讨论性能,最后差异从我认为的5:50降到5:13,没有我误以为的那么大,改正误解就行了,呵... |
|
返回顶楼 | |
发表时间:2009-05-05
最后修改:2009-05-05
性能再升差不多一倍吧,
一百万数据速度达到5秒内,发现着实以我目前能力达不到…… 呼唤高手 status_file = File.open('status.csv') wait_file = File.open('wait-status.csv') @status = {} send_num = '00000000' receive_num = '00000000' send_data = [] receive_data = [] status_file.map do |x| @status[$1] = 'UNDELI' if x !~ /^(\d+),DELI/ end wait_file.map do |x| time = x[64,2].sub(/^-/,'0') + x[67,2] + x[69,2].sub(/^ /,'0') + x[72,2]+ x[75,2] if x[0].chr == '3' send_data << "#{time}08515#{send_num.succ!}\t00\t#{x[22,11]}\t#{x[34,11]}\t0\t#{@status[x[2,19]] || 'DELI'}\t0\t#{x[56,3]}\t085101\t15\t108511\t13800851500\t2008#{time}\t2008#{time}\n" else receive_data << "#{time}08515#{receive_num.succ!}\t00\t#{x[22,11]}\t#{x[34,11]}\t0\t#{@status[x[-12,10]] || 'DELI'}\t0\t#{x[56,3]}\t085101\t\t\t108511\t13800851500\t2008#{time}\t2008#{time}\n" end end File.open('GMO','w') { |x| x << send_data } File.open('GMT','w') { |x| x << receive_data } |
|
返回顶楼 | |