需要在这里提出建议。目前我通过使用此代码获取脚本的内存使用情况
$sysMem = escapeshellcmd(system('echo $(free)'));
memory_get_usage();
这是我得到的结果:
总记忆:1034708
二手Mem:1014572
免费纪念:20136年
共享记忆:0
Buff Mem:73456
缓存内存:480752
-------------------------------------------------- -
Mem Usegae:509464
总记忆:1034708
二手Mem:1014564
免费记忆:20144
共享记忆:0
Buff Mem:73456
缓存内存:480828
-------------------------------------------------- -
Mem Usegae:343904
然而,我发现内存使用情况有点不一致,并且内存使用量甚至可能超过总内存,这是不可能的。
是memory_get_usage();获取php脚本内存使用的最佳选择?
或者我需要使用unset()函数。然而,即使我使用的内存仍然大致相同
如果还有其他方法,请提出建议。
感谢上百万 伙计们和女士们
答案 0 :(得分:1)
也许这有助于使用纯PHP。 您可以使用以下方法获取确切的总内存:
ini_get('memory_limit');
但这会像'128M'。 要将此表单转换为字节,请查看Stack-Overflow-Convert String Mem-Bytes into bytes。 现在您有两种获取脚本内存使用的方法:
memory_get_peak_usage();
和
memory_get_usage();
有了这些成分,这个难题很容易(imho)。
答案 1 :(得分:0)
这很难准确说明。您可能需要更仔细地指定您要执行的操作。
首先,调用'free'命令正逐渐陷入Linux虚拟内存方案的空白之中。你需要知道如何有意义地解释这些。
据我所知,get_memory_usage
可能会以多种不同的方式运行,具体取决于PHP的运行方式。它似乎返回了为当前PHP解释器分配了多少内存。这不太可能表明当前脚本使用了多少内存。
此外,free
以千字节为单位返回内存。 PHP的get_memory_usage
以字节为单位返回它。你偏离1024倍。将后者除以1024得到可比单位。
那你想做什么?