【问题标题】:php memory overflow multi curlphp内存溢出多卷曲
【发布时间】:2011-04-29 16:49:28
【问题描述】:

我有一个 PHP 例程,我称之为 shell_exec 来遍历我自己的网站并建立一个索引。

但是,自从我执行此多线程操作后,我一直遇到内存存储问题...服务器内存飙升至 250MB,然后随机回落至 100MB。

这段时间我不断的访问mysql数据库;并且 php 变慢了。

这可能使用 php 还是我应该使用 jsp/java。

【问题讨论】:

  • 你没有告诉我们你在 shell_exec 调用中到底在做什么,所以这不可能真正回答。你用什么工具来做到这一点?内存使用是否给您带来问题?
  • 我使用 rolling_curl 库,我的代码是 php-cli /home/ex.php shell_exec 我通过 curl_multi 拉取数据集合,然后在我的回调函数中解析它以获得下一组通过 php curl multi 拉取的网址 - 不幸的是,我不能使用 cronjob 来执行此操作。

标签: php multithreading performance memory curl


【解决方案1】:

PHP 使用reference counting 进行内存管理。只要声明了一个可用于访问该变量的变量(可以是数组或全局变量),它就永远不会被释放。

解决方案是在任何已经使用过的东西上调用unset()。为了使其使用更少的内存,已创建的索引部分应存储在 sql 数据库中。这允许更多的数据可以被取消。

简而言之,这可以在 PHP 或 JSP 中完成,并且通过使用数据库来使用更少的内存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-08
    • 2011-04-23
    • 2012-04-08
    • 2013-07-05
    • 2011-09-16
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多