分页: 1 / 3

perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-04 15:05
xhy
完整数据在这里:http://attractivechaos.github.com/plb/

只解读perl和python,数值表示运行时间,python包括pypy和2.7/3.2,以及shedskin等不同实现。
公平起见,python没有使用scipy和numpy等包,一是因为算法不同,二是因为数学库有C扩展。

代码: 全选

Perl-5.1        121.2    230.3    225.6    0.5    12.6     6.3      219.9
PyPy-1.4.1      19.5     8.5      84.1      4.0    7.3     12.3    236.0
CPython-3.2     119.9    121.9    93.2       5.7    13.8     5.1     154.1
CPython-2.7.1  113.9    153.9    91.3       5.5    12.6     4.1     112.6
ShedSkin-0.9   4.4      3.7      50.4       1.1    11.0     6.9    331.1
1.png
2.png
结论:perl整体性能低于python,但是正则非常快,甚至比C的正则库还快,海量正则就得用perl。

顺便说一句,CPAN在10年前很牛,现在也就一般,
python和ruby乃至php都有类似的东西,rubygems的模块数已经超过CPAN了。

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-04 15:09
yjcong
等神谕

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-04 15:15
leeaman
ee会伤心的 :em04

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-04 22:58
jarlyyn
正则不就perl发明的么。。。。。。。

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-04 23:56
xhy
jarlyyn 写了:正则不就perl发明的么。。。。。。。
perl和tcl的正则派生自Henry Spencer写的一个正则库,之后在这个基础上做了扩充,添加了新的特性。

代码: 全选

Perl and Tcl regular expressions were derived from a regex library written by Henry Spencer, 
though Perl later expanded on Spencer's library to add many new features.
正则的起源当然不是perl,正则的发明人是数学家Stephen Cole Kleene,时间是50年代,
把正则用于计算机的第一人是Ken Thompson,perl的发明时间比这个晚了至少10年。

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 10:11
eexpress
perlre 是事实标准。

评测都是脑残写给脑残看的。

实际用了才知道。“实践出真知”

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 10:21
ljj_jjl2008
eexpress 写了:perlre 是事实标准。

评测都是脑残写给脑残看的。

实际用了才知道。“实践出真知”
:em06 :em06

谁没事写那么多正则?快这点时间谁有能感觉到?

根本不用为了这么个测评来激动。

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 10:32
eexpress
额。我是来反对评测的,哪里激动了?
你激动个啥。
:em04

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 10:33
eexpress
perl其实是编写程序最快。随手写。开发最快。

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 11:07
yjcong
eexpress 写了:perlre 是事实标准。

评测都是脑残写给脑残看的。

实际用了才知道。“实践出真知”
顺神者昌, 逆神者残

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 12:22
eexpress
截屏脚本

代码: 全选

#!/usr/bin/perl

use Gtk2 -init;
  my $s = Gtk2::Gdk::Screen->get_default;
  my $w = $s->get_root_window;
  my $p = Gtk2::Gdk::Pixbuf->get_from_drawable (
            $w, undef, 100, 100, 0, 0, 400, $s->get_height);
#            $w, undef, 0, 0, 0, 0, $s->get_width, $s->get_height);
  $p->save ("sshot-pl.png", "png");

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 14:21
yjcong
eexpress 写了:截屏脚本

代码: 全选

#!/usr/bin/perl

use Gtk2 -init;
  my $s = Gtk2::Gdk::Screen->get_default;
  my $w = $s->get_root_window;
  my $p = Gtk2::Gdk::Pixbuf->get_from_drawable (
            $w, undef, 100, 100, 0, 0, 400, $s->get_height);
#            $w, undef, 0, 0, 0, 0, $s->get_width, $s->get_height);
  $p->save ("sshot-pl.png", "png");
怎么把这个改成手动选择区域的脚本??

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 14:27
eexpress
人机界面处理,最耗资源了。你直接使用shutter吧。那也是perl的。

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 19:50
xhy
截屏用gnome自带的工具更方便,命令行下可以用scrot,
屏幕录像用recordmydesktop或者xvidcap,脚本留给别人折腾去

Re: perl的正则最快,秒杀其它语言,甚至比C的正则库还快

发表于 : 2011-09-05 20:10
xhy
截屏的库不少,起码有4个可以用,代码都不会超过10行,
PIL.ImageGrab
gtk.gdk...get_from_drawable
PyQt4.QtGui.QPixmap.grabWindow
wx ScreenDC...MemoryDC
除了python, ruby也有相应的库