Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 短脚本,长模块还是长脚本,短模块?_Linux_Perl_Module_Mod Perl - Fatal编程技术网

Linux 短脚本,长模块还是长脚本,短模块?

Linux 短脚本,长模块还是长脚本,短模块?,linux,perl,module,mod-perl,Linux,Perl,Module,Mod Perl,我只是想知道在用Perl创建web服务时,什么对性能最好 最好是使用尽可能短的.pl脚本,并在.pl脚本使用的模块中放入尽可能多的代码,还是完全不使用模块不会影响性能 我在CentOS Linux上使用的是带有perl 5.8.8的mod_perl。您最好考虑一下可维护性。选择模块。当您使用mod perl时,无需担心这可能导致的性能问题。您最好考虑可维护性。选择模块。当您使用mod perl时,无需担心这可能导致的性能问题。因为您使用的是mod_perl,所以在将代码分散到任意多个文件中时,不

我只是想知道在用Perl创建web服务时,什么对性能最好

最好是使用尽可能短的.pl脚本,并在.pl脚本使用的模块中放入尽可能多的代码,还是完全不使用模块不会影响性能


我在CentOS Linux上使用的是带有perl 5.8.8的mod_perl。

您最好考虑一下可维护性。选择模块。当您使用mod perl时,无需担心这可能导致的性能问题。

您最好考虑可维护性。选择模块。当您使用mod perl时,无需担心这可能导致的性能问题。

因为您使用的是
mod_perl
,所以在将代码分散到任意多个文件中时,不会造成明显的性能损失。为代码使用模块、小的、可测试的函数和面向对象的结构将使代码更易于维护、重用和扩展。而且您根本不需要
.pl
脚本,因为您使用的是
mod_perl
。只需做如下操作:

httpd.conf

使用web应用程序框架使其更加容易。内置了出色的mod_perl支持。

由于您使用的是
mod_perl
,因此,将代码分散到任意多个文件中不会造成明显的性能损失。为代码使用模块、小的、可测试的函数和面向对象的结构将使代码更易于维护、重用和扩展。而且您根本不需要
.pl
脚本,因为您使用的是
mod_perl
。只需做如下操作:

httpd.conf

使用web应用程序框架使其更加容易。具有出色的内置mod_perl支持。

使用mod_perl编写模块有性能优势。您可以在启动时使用Apache加载模块。这样一来,它们就被编译好了,当它派生出一个新的孩子时,它们就准备好了。他们也可以在创业时做工作,并分享这些工作,而不是让每个孩子都重复一遍。它还可以使编译后的代码驻留在共享内存中,从而减少内存占用

这是和。在Apache2中,您的策略根据您使用的工人模型有所不同

但更重要的是,模块更易于测试、记录和重用


警告:我已经有一段时间没有对mod_perl进行性能优化了。

使用mod_perl编写模块有性能优势。您可以在启动时使用Apache加载模块。这样一来,它们就被编译好了,当它派生出一个新的孩子时,它们就准备好了。他们也可以在创业时做工作,并分享这些工作,而不是让每个孩子都重复一遍。它还可以使编译后的代码驻留在共享内存中,从而减少内存占用

这是和。在Apache2中,您的策略根据您使用的工人模型有所不同

但更重要的是,模块更易于测试、记录和重用


警告:我已经有一段时间没有对mod_perl进行性能优化了。

无论您在做什么,您都应该将人们如何运行您的程序与其所有功能分开。将代码划分为模块,这些模块不会与您正在执行的任何其他操作紧密耦合。应用程序中特定于Apache的部分应该只是处理请求和其余代码之间连接的薄层。

无论您在做什么,您都应该将人们如何运行您的程序与其所有功能分开。将代码划分为模块,这些模块不会与您正在执行的任何其他操作紧密耦合。应用程序中特定于Apache的部分应该只是处理请求和其余代码之间连接的薄层。

这非常聪明,但a)使用Apache,B)隐藏处理程序代码,没有充分的理由,C)几乎无法进行测试。@Schwern,我不明白你的意思。OP说他正在使用mod_perl,这意味着Apache。什么是“隐藏处理程序代码?”@Schwern,friedo没有说关于代码的其余部分。“做点什么”中的所有内容都是他们应该使用自己创建的单独模块的地方它非常聪明,但A)使用Apache,B)隐藏处理程序代码没有好的理由,C)几乎不可能进行测试。@Schwern,我不明白你的意思。OP说他正在使用mod_perl,这意味着Apache。什么是“隐藏处理程序代码?”@Schwern,friedo没有说关于代码的其余部分。“做点什么”中的所有内容都是他们应该使用自己创建的单独模块的地方
PerlModule My::WebApp
<Location /app>
    SetHandler perl-script
    PerlHandler My::WebApp
</Location>
package My::WebApp;

use strict;
use warnings;

use Apache2::Const -compile => qw(OK);

sub handler { 
    my $r = shift;    # apache request object

    # do stuff

    return Apache2::Const::OK;
}