gpt4 book ai didi

php - 我怎样才能找出我所有的内存在 PHP 中的位置?

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:23 25 4
gpt4 key购买 nike

我有一个脚本,它对数据库中的某些行(很多行)进行大量处理。该脚本使用了大量对象和一些内部缓存机制。

在某些时候,我正在释放所有使用的缓存,以避免只为缓存项吃掉所有可用的 RAM,但使用的内存并没有减少。

我已经使用 memory_get_usage(true) 来确定脚本占用了多少 RAM,但我不知道如何检测哪些对象仍在 RAM 中并且仍在占用内存。

简单的解决方案是遍历所有对象,并确保没有变量仍然存在并指向它们,并且所有内部缓存实际上都已释放并再次测试,测试和测试,但我 < strong>正在寻找一个工具或函数调用,它会告诉我“Z 类中的变量 Y 占用了 90% 的 RAM”,而不必知道和弄乱我在其中使用的对象的所有内部结构这个脚本。

最佳答案

你为什么不分析你的脚本?

在打开分析器的情况下使用 xdebug 并调查您的 cachegrind 文件中发生了什么。

在这里查看更多信息:http://www.xdebug.org/docs/profiler

更新:您可以通过将 xdebug.show_mem_delta 参数与 xdebug.trace_format 一起设置为 1 来获得更多与内存相关的信息,以在简单的 html 中获取内存使用情况。

检查这个http://xdebug.org/docs/execution_trace还有这个http://derickrethans.nl/xdebug-and-tracing-memory-usage.html获得一些想法。

关于php - 我怎样才能找出我所有的内存在 PHP 中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com