我正在使用Perl开发一个相当大的企业应用程序,它有几十个模块,这些模块主要用于在web上爬行一些东西。
我写的子例程之一是做图像检索和分析。通常,我发送给它的每个参数都需要几秒钟才能完成。所以我要把它发送到另一个过程(分叉.)。问题是,过了一段时间,系统变得非常不稳定,内存被填满。
问题
发布于 2011-11-27 15:53:05
Forking使用copy-on-write,所以分叉进程不应该占用太多内存,除非它们的寿命特别长。
听起来你的系统里有个内存泄漏。您有任何相互递归的依赖关系或循环数据结构吗?如果是这样的话,您可能需要考虑使用Scalar::Util::weaken来调整数据结构上的引用计数。
https://stackoverflow.com/questions/8286098
复制相似问题