Perl Catalyst : possibility to share . 子服务器进程之间的 so 文件

标签 perl catalyst

我有一个 Catalyst Web 服务器。我可以看到每个子服务器进程都单独加载很多相同的 .so 文件,这占用了大量内存。

是否有可能 Catalyst 为所有子进程预加载所有 .so 文件一次?

最佳答案

您所描述的具体行为是 mod_perl 的一项功能而不是催化剂本身。但是您当然可以在 mod_perl 环境下运行 Catalyst 应用程序。

在 mod_perl 下,只能加载共享库文件一次,并且不可能有不同的版本。除了节省多个子进程的加载之外,这实际上可以在同一服务器上的不同应用程序上运行。因此,使用 mod_perl 解释器的两个不同的 Web 应用程序实际上会共享它们都使用的库的已加载实例。

因此,大多数人通常不喜欢使用 mod_perl 作为为其应用程序提供服务的方式,因为他们实际上希望为每个应用程序维护不同的库版本。由于上述原因,在此环境中这是不可能的。

但是,如果您认为这适合您的需求,那么 mod_perl 可能就是适合您的环境。

Catalyst 对 mod_perl 的支持略有变化。通常首选的方法是使用Plack::Handler将 Catalyst 作为 PSGI 应用程序引导到 mod_perl 环境的方法。关于配置还有一些附加说明here .

关于Perl Catalyst : possibility to share . 子服务器进程之间的 so 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22851585/

相关文章:

Perl 使用 HTTP::Request 上传文件

mysql - 与简单地将 mysql_auto_reconnect 设置为 1 相比,使用 DBIx::Connector 有什么优势?

perl - 跨 Catalyst 应用程序共享身份验证

perl - 从 postgresql 函数中检索异常消息

sql - 如何在 Catalyst 中的 DBIx::Class 上设置 sql 选项

perl - Catalyst 开发服务器 - 不显示路由和错误

perl - 如何卸载通过cpan安装的与yum冲突的perl

perl - perl -pi -e 到底是做什么的?

perl - 在 Perl 中将字符串中的 iso-8859-1 符号转换为 utf-8

perl - 将Catalyst应用程序部署到生产服务器的最佳实践是什么?