首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl与进程管理

Perl与进程管理
EN

Stack Overflow用户
提问于 2011-11-27 14:01:57
回答 1查看 226关注 0票数 4

我正在使用Perl开发一个相当大的企业应用程序,它有几十个模块,这些模块主要用于在web上爬行一些东西。

我写的子例程之一是做图像检索和分析。通常,我发送给它的每个参数都需要几秒钟才能完成。所以我要把它发送到另一个过程(分叉.)。问题是,过了一段时间,系统变得非常不稳定,内存被填满。

问题

  1. 是因为创建的每个进程都在单独的内存位置创建父数据的副本吗?如果是这样的话,是否意味着每个子模块都有所有模块的副本?(有几十个.)
  2. 什么是释放这个内存/管理这些进程的最佳方法?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-27 15:53:05

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

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8286098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档