技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> 快些,在快些,perl的小优化

快些,在快些,perl的小优化

浏览:2413次  出处信息

一个小程序的简单优化,经过大师指点后速度的分别

[root@localhost ~]# time cat 5000 |perl check.pl  >/tmp/b
 
real    5m59.953s
user    5m59.956s
sys     0m0.105s
[root@localhost ~]# time cat 5000 |perl check1.pl  >/tmp/a
 
real    0m0.134s
user    0m0.111s
sys     0m0.030s

下面是程序优化后的check.pl

#!/usr/bin/perl
use strict;
use warnings;
 
open A,"<a>){
        my ($md5,$ip) = split;
        $hash{$md5} = $ip;
}
while (<>){
    my $line = $_;
    if( /http:\/\/[\w.]+\/\d+\/(\w+)\// ){
        if( exists $hash{$1}){
            print $line."\n";
        }
    }
}
</a>

优化 前的

<a>#!/usr/bin/perl
use strict;
use warnings;
 
open A,"</a><a>){
        my ($md5,$ip) = split;
            $hash{$md5} = $ip;
        }
while (<>){
   my $line = $_;
      foreach my $md5 ( keys %hash){
              if($line =~ /$md5/){
                    print $line."\n";
                }
      }
}
</a>

在logan中有1W的记录.cat时有5k的行.发现正则的性能实在太好,然后使用keys来取hash查所有的表,反到性能不好,但是查是否存在,hash优化的相当于的不错.

建议继续学习:

  1. 30分钟3300%性能提升――python+memcached网页优化小记    (阅读:11854)
  2. WEB系统需要关注的一些点    (阅读:10158)
  3. perl更新/修改/删除文本文件内容    (阅读:9317)
  4. 基于SSD的数据库性能优化    (阅读:7178)
  5. jQuery性能优化指南    (阅读:7150)
  6. perl大牛flw传说    (阅读:6445)
  7. perl模块Getopt::Std用法及实例-从命令行读取参数模块    (阅读:5748)
  8. 一次简单C程序的性能优化    (阅读:5453)
  9. [Perl] Template::Toolkit 模板技术.    (阅读:5312)
  10. 在perl中连接和使用sqlite做数据存储    (阅读:4916)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1