- 论坛徽章:
- 1
|
原帖由 兰花仙子 于 2007-1-22 15:07 发表
那说明Perl还是快不少,
是的,很多情况下未优化的python是不如perl快,不过通常这并不会成为问题,毕竟两种解释性语言都不是以性能著称。但就性能来说python也有很多优势,例如前面提到过的c模块。对于性能关键的代码块,可以考虑用C编写,或者用pyrex来写。还有用psyco优化有时会取得非常好的效果。此外还有一些python本身的优化措施。看我测试的情况:
- $ cat t1.pl
- #!/usr/bin/perl
- $i=0;
- while ($i<10000000) {
- $i+=1;
- }
- $ time ./t1.pl
- real 0m1.888s
- user 0m1.884s
- sys 0m0.000s
复制代码
同样的perl代码,作为基准吧。
- $ cat t1.py
- #!/usr/bin/python
- i=0
- while i<10000000:
- i+=1
- $ time ./t1.py
- real 0m3.704s
- user 0m3.696s
- sys 0m0.004s
复制代码
未优化python代码,此处比perl的慢一倍。
- $ cat t2.py
- #!/usr/bin/python
- def loopit():
- for i in xrange(10000000):
- i+=1
- loopit()
- $ time ./t2.py
- real 0m1.772s
- user 0m1.760s
- sys 0m0.012s
复制代码
这个只用python语言本身的优化,速度已经反超perl。
- $ cat t3.py
- #!/usr/bin/python
- from psyco import full
- full()
- def loopit():
- i=0
- while i<10000000:
- i+=1
- loopit()
- $ time ./t3.py
- real 0m0.068s
- user 0m0.060s
- sys 0m0.008s
复制代码
这个又加入了psyco优化,此处性能几乎提高两个量级。
这个试例是针对整数的算术(加法)运算,只是管中之一斑而已,远不能涵盖两种语言的性能全貌。不过我可没有时间去做全面的评测。感兴趣的话可以到网上搜索或自己去做。
小弟是perl和python都学过,不过都浅尝辄止,只得一点皮毛。我并不想争论两种语言的短长,事实上两者我都喜欢。只是看到关于性能的话题,就自己知道的一点忍不住说两句,不对的地方请包涵指正。^_^
----------------------
hehe, 忘了说测试的环境了:
Ubuntu6.10 on T2300E 512M memory
perl 5.8.8
python 2.4.4c1
python-psyco 1.5-3
[ 本帖最后由 woodie 于 2007-1-28 17:47 编辑 ] |
评分
-
查看全部评分
|