如何优化文件处理?

时间:2016-05-21 13:33:47

标签: performance perl sed

我正在处理一个Perl / CGI脚本,该脚本读取一个包含超过100k行的8MB文件,并以100行(使用分页)的形式显示它。

以下哪一项会更快

  1. 将整个输入文件存储到一个数组中,并为每个页面提取100行(使用数组切片)

    my @extract = @main_content[101..200];
    

  2. 对于每个页面,使用sed命令提取用户想要查看的任何100行。

    sed -n '101,200'p filename
    

1 个答案:

答案 0 :(得分:0)

如果你真的想要性能,那么不要使用CGI,尝试使用能够在请求之间保留内存中数据的持久副本的东西。 8mb这些天很小,但是为每个请求加载都不合理,也不会扫描整个文件。 Modperl是这种做旧的方式,它是一个嵌入在web服务器中的perl解释器,更新的方式是使用催化剂或舞者,这些指令超出了本回复的范围。如果只是偶尔使用CGI并且密码保护以限制使用,你可以使用CGI。