gpt4 book ai didi

php - 如何确定变量的内存占用(大小)?

转载 作者:IT老高 更新时间:2023-10-28 11:51:16 29 4
gpt4 key购买 nike

PHP(或 PHP 扩展)中是否有一个函数可以找出给定变量使用了多少内存? sizeof 只是告诉我元素/属性的数量。

memory_get_usage 的帮助在于它为我提供了 whole 脚本使用的内存大小。有没有办法对单个变量执行此操作?

注意这是在开发机器上,所以加载扩展或调试工具是可行的。

最佳答案

没有直接的方法可以获取单个变量的内存使用情况,但正如 Gordon 建议的那样,您可以使用 memory_get_usage。这将返回分配的内存总量,因此您可以使用变通方法并测量前后的使用情况,以获得单个变量的使用情况。这有点hacky,但它应该可以工作。

$start_memory = memory_get_usage();
$foo = "Some variable";
echo memory_get_usage() - $start_memory;

请注意,这绝不是一种可靠的方法,您不能确定在分配变量时没有其他任何东西会触及内存,因此这只能用作近似值。

您实际上可以通过在函数内部创建变量的副本并测量所使用的内存来将其转换为函数。没有对此进行测试,但原则上,我认为它没有任何问题:

function sizeofvar($var) {
$start_memory = memory_get_usage();
$tmp = unserialize(serialize($var));
return memory_get_usage() - $start_memory;
}

关于php - 如何确定变量的内存占用(大小)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2192657/

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