【发布时间】:2014-12-02 05:53:43
【问题描述】:
我有一个要求
我必须在内存中放置一个数据结构(Perl 哈希),以便每个 HTTP 进程(运行 Perl 脚本)都将使用该哈希。
哈希结构约为 300 MB。
环境是mod_perl
我想创建一个在 Apache 启动时加载的模块,该模块在共享区域中创建一个哈希并返回对它的引用。
您能否对这种行为发表评论,或提出替代解决方案。另外请指出一些好的资源来检查示例。
【问题讨论】:
-
您的问题过于宽泛,尽管您可能会得到有用的答案。您现在知道 Stack Overflow 是关于回答特定编程问题的。
-
Ogata Tetsuji 下面的回答似乎是解决问题的巧妙方法,但实际上,我不得不退后一步重新考虑这个问题。这是一个通过将大型数据结构存储在 Perl 进程之外更常见的问题来解决,例如使用数据库或某种文件结构。即使您使用传统的 SQL 数据库,数据也会很快被移动到 OS 磁盘缓存中,并且查询时间变得非常快。您还可以查看内存中的数据存储,例如 Memcached,它可以提供具有竞争力的响应时间。
标签: perl shared-memory mod-perl