PHP查询内存占用函数

发布时间 2023-12-28 13:43:12作者: 刘俊涛的博客

PHP查询内存占用函数

memory_get_usage()

在PHP中,包括ThinkPHP框架中,直接查询一个数组占用的内存大小可以使用memory_get_usage()函数。这个函数返回当前PHP脚本消耗的内存总量(以字节为单位)。

以下是一个简单的示例,展示如何在ThinkPHP中获取一个数组占用的内存大小:

// 在ThinkPHP控制器或其他适当的位置
public function testArrayMemoryUsage()
{
    // 创建一个数组
    $array = array();
    for ($i = 0; $i < 1000; $i++) {
        $array[$i] = $i;
    }

    // 记录开始时的内存使用情况
    $startMemory = memory_get_usage();

    // 执行一些操作(这里只是作为一个示例,没有实际操作)

    // 记录结束时的内存使用情况
    $endMemory = memory_get_usage();

    // 计算并输出数组占用的内存大小(假设其他操作不影响内存使用)
    $arrayMemoryUsage = $endMemory - $startMemory;
    echo "The array occupies approximately " . $arrayMemoryUsage . " bytes of memory.";
}

请注意,这个方法只能给出一个近似的数组内存使用量,因为在PHP中,内存管理是动态的,而且可能会有其他因素影响总体的内存使用情况。如果你需要更精确的计算,可能需要考虑每个元素的类型和大小,然后乘以数组的长度。但是,对于大多数情况,memory_get_usage()应该足够用来评估大致的内存使用情况。

demo

<?php
    function get_memory() {
        $size = memory_get_usage();
        $unit=array('B','KB','MB','GB','TB','PB');
        return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
    }
    echo get_memory();
?>



欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

公众号

Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)