Mod-perl和我们的变量 - 它加速了吗?



我正在使用mod-perl。我的印象是,我们的变量不会为每次执行创建。即,如果我创建一个哈希变量作为我们的,那么该变量将被创建一次,并将保留在 apache 的内存缓存中以供后续运行。

所以我的问题是,在mod-perl中,低于两个的执行速度会有什么不同吗?

Module1
....
....
our %myhash = qw ( list of key value );
...
....
sub fun() {
  if(exists $myhash{'key'}) {
  ...................
   return ;
}

Module2
.....
.....
sub fun() {
  my %myhash = qw ( list of key value );
  if(exists $myhash{'key'}) {
  ...................
   return ;
}

如果我每次运行一次调用此函数,那么在 mod-perl 上的执行速度方面哪一个更好?

所有静态变量(包括全局变量和包范围变量)将只初始化一次。因此,如果您要设置将在许多请求中使用的大型数据结构,那么静态初始化它们会更有效。

您不需要使用"我们的"来声明它们。如果它们只在一个包中引用,那么你可以使用"my"(当然在所有子包之外)来最小化名称冲突的风险。

我将使用 Module1,因为它正在创建一个全局变量,该变量创建一次,可以通过子例程访问,而不是每次调用子例程时创建。

相关内容

最新更新