加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何提高perl处理大文件的效率

发布时间:2020-12-15 21:01:24 所属栏目:大数据 来源:网络整理
导读:如何提高perl处理大文件的效率 Perl最常用的功能之一是处理文本,它内嵌的强大正则表达式是其他语言难以匹敌的,然而,如果使用不当,在处理大文件时(例如我这里的应用程序产生的日志,每天加起来有好几个G),效率会非常底下。下面我总结几个处理这些大文

如何提高perl处理大文件的效率

Perl最常用的功能之一是处理文本,它内嵌的强大正则表达式是其他语言难以匹敌的,然而,如果使用不当,在处理大文件时(例如我这里的应用程序产生的日志,每天加起来有好几个G),效率会非常底下。下面我总结几个处理这些大文件提高效率的规律,欢迎大家补充: 1) 处理文本文件,一般是逐行读入,在这样的循环里,绝不要使用外部shell命令,例如,假如要将分析内容写往其他文件,那么该老老实实的使用perl 自己的写文件句柄的方式,而不要使用shell的"echo $_ >;file"之类的命令,后者比前者慢10000倍。 2)在匹配正则表达式时,如果匹配里含有"&"字符,那么记得在前面加个""转义,否则perl会把匹配的内容复制一份以供以后参考,这导致程序其慢无比; 3) 在匹配正则表达式时,尽量不要使用i选项(区分大小写),请将不区分大小写的区域尽量缩小,例如/ID=something&;/i,如果只 对ID不分大小写的话,那么应该这么写:/[Ii][Dd]=something&;/,后者比前者快不止100倍; 4)在匹配正则表达式时,如果匹配项是固定不变的,那么请使用o选项,这表示只对正则表达式编译一次,例如/jsp/io比/jsp/i好很多。 5)while循环要比for/foreach循环效率高,6)多用小括号,少用$&,$`,$' 7)多余多行匹配推荐用s/m修饰符,不推荐使用$* 本文转自:http://hi.baidu.com/setcookie/item/e7fee3dce9680de5795daa3a

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读