gpt4 book ai didi

Perl 和进程管理

转载 作者:行者123 更新时间:2023-12-05 00:36:20 24 4
gpt4 key购买 nike

我正在使用 Perl 开发一个相当大的企业应用程序,有数十个模块等,主要用于在网络上抓取一些东西。

我编写的子程序之一是进行图像检索和分析。对于我发送给它的每个参数,通常需要几秒钟才能完成。所以我将它发送到不同的进程( fork ......)。问题是,一段时间后系统变得非常不稳定,内存已满。

问题 :

  • 是因为创建的每个进程都会在单独的内存位置创建父数据的副本吗?如果是这样,这是否意味着每个 child 都拥有所有模块的副本? (有几十个……)
  • 释放此内存/管理这些进程的最佳方法是什么?
  • 最佳答案

    fork 使用 copy-on-write ,所以 fork 的进程不应该占用太多的内存,除非它们特别长寿。

    听起来您的系统中存在内存泄漏。您是否有任何相互递归的依赖关系或循环数据结构?如果是这样,您可能需要考虑使用 Scalar::Util::weaken调整数据结构的引用计数。

    关于Perl 和进程管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286098/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com