【发布时间】:2012-04-02 11:09:48
【问题描述】:
每次我构建 Catalyst 应用程序时,都会遇到应用程序启动(重新)缓慢到令人痛苦的地步,延迟大约为 10 秒。今天我认为延迟是由以下几行引起的:
use lib '/home/zoul/opt/lib/perl/5.8';
use lib '/home/zoul/opt/share/perl/5.8';
use lib '/home/zoul/opt/lib/perl/5.8.8';
use lib '/home/zoul/opt/share/perl/5.8.8';
这些行只在服务器上需要,因为我没有在那里获得 root 访问权限并且我的 Perl 模块安装在 ~/opt 下。 (我不能使用 Apache 的 SetEnv 模块,因为主机不支持它。因此我必须将库路径输入到 App.pm。)在我的开发机器上,出现血腥延迟的路径不存在。
我的问题:(1)为什么这些线路会造成如此多的延迟,大约 7 秒? (2) 有什么好的方法来解决这个问题?天真的条件use 不起作用:
if ($on_the_hosting_machine)
{
use lib '…';
}
我想我可以以某种方式eval,或者有更好的方法吗?
【问题讨论】: