首页 文章

perl内存不足错误

提问于
浏览
2

我有一个perl脚本,产生60个子进程 . 我得到一个“内存不足错误”,没有其他额外的错误消息,以了解它的原因 . 它表示什么?是因为我有60个子进程同时在系统中运行我得到一个内存不足的错误 . 我在这个过程中没有大数组或哈希映射,所以不应该有内存问题 . 子进程只是greps文件 . Solaris 10是操作系统 .

  • 我可以在Solaris 10中分叉的子进程的最大限制是多少?

  • 内存不足表示什么?

3 回答

  • 0

    我相信60个工艺叉对于任何系统来说都太过分了 . 你绝对确定你需要所有这些吗?尽管 fork() 经常被用作并行化的同义词,但应谨慎使用 . 例如,大多数"slow tasks"都是I / O绑定的,可以通过非阻塞异步调用进行并行化(参见AnyEventCoro) . 即使是CPU绑定的任务也很棘手:除非你有一台64核SMP机器,否则不要指望60个子进程的速度提高60倍 . 此外,这是一个很好的Perl并发编程比较图表:http://blog.64p.org/entries/2009/06/30

  • 3

    您可以使用诸如Parallel::ForkManager之类的库来将同时进程的数量降低到某个限制 .

  • 0

    某些系统有64个子限制 . 我想你找到了一个 . 收获那些已经完成产生更多的东西 .

相关问题