跟踪 PHP 中的内存使用情况
我正在尝试跟踪处理 URL 的脚本的内存使用情况。基本思想是在将另一个 URL 添加到 cURL 多处理程序之前检查是否存在合理的缓冲区。我使用的是“滚动 cURL”概念,该概念在多处理程序运行时处理 URL 数据。这意味着每次处理并删除现有 URL 时,我都可以通过从池中添加新的 URL 来保持 N 个连接处于活动状态。
我已经使用了一些积极的结果。添加标志会有所帮助(不太清楚“系统”内存和“emalloc”内存之间的区别,但系统显示的数字更大)。 随着 URL 的添加而增加,然后在 URL 集耗尽时下降。但是,我刚刚超过了32M的限制,我上次的内存检查是~18M。memory_get_usage()
real_usage
memory_get_usage()
每次请求返回 cURL 多个信号时,我都会轮询内存使用情况。由于多个请求可能同时返回,因此有可能一堆URL同时返回数据,并且实际上跳过了14M的内存使用量。但是,如果准确,我想这就是正在发生的事情。memory_get_usage()
[更新:在询问我猜之前应该运行更多的测试,增加了php的内存限制(但在脚本中保留了“安全”量不变),并且报告的内存使用量确实从我自己施加的25M限制以下跃升到超过32M。然后,正如预期的那样,作为未添加的URL缓慢下降。但我要把问题留到:这是正确的方法吗?
我能以这种方式信任吗?有没有更好的替代方法来获取内存使用情况(我见过一些脚本解析shell命令的输出)?memory_get_usage()