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

不同视角、不同观点、深度探讨,禁止人品和道德攻击
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

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

#1

帖子 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了。
目前负债150多万
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

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

#2

帖子 yjcong »

等神谕
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid

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

#3

帖子 leeaman »

ee会伤心的 :em04
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

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

#4

帖子 jarlyyn »

正则不就perl发明的么。。。。。。。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

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

#5

帖子 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年。
目前负债150多万
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#6

帖子 eexpress »

perlre 是事实标准。

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

实际用了才知道。“实践出真知”
● 鸣学
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#7

帖子 ljj_jjl2008 »

eexpress 写了:perlre 是事实标准。

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

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

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

根本不用为了这么个测评来激动。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#8

帖子 eexpress »

额。我是来反对评测的,哪里激动了?
你激动个啥。
:em04
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#9

帖子 eexpress »

perl其实是编写程序最快。随手写。开发最快。
● 鸣学
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

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

#10

帖子 yjcong »

eexpress 写了:perlre 是事实标准。

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

实际用了才知道。“实践出真知”
顺神者昌, 逆神者残
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#11

帖子 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");
● 鸣学
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

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

#12

帖子 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");
怎么把这个改成手动选择区域的脚本??
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#13

帖子 eexpress »

人机界面处理,最耗资源了。你直接使用shutter吧。那也是perl的。
● 鸣学
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

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

#14

帖子 xhy »

截屏用gnome自带的工具更方便,命令行下可以用scrot,
屏幕录像用recordmydesktop或者xvidcap,脚本留给别人折腾去
目前负债150多万
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

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

#15

帖子 xhy »

截屏的库不少,起码有4个可以用,代码都不会超过10行,
PIL.ImageGrab
gtk.gdk...get_from_drawable
PyQt4.QtGui.QPixmap.grabWindow
wx ScreenDC...MemoryDC
除了python, ruby也有相应的库
目前负债150多万
回复