动态内存分配php

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态内存分配php相关的知识,希望对你有一定的参考价值。

我正在使用ImageMagick库来编写我正在编写的图像压缩脚本。由于它应该在单独的文件夹中处理大量图像,因此我在内存分配方面遇到了一些麻烦。

如果默认内存限制不足以处理图像,有没有办法分配更多内存?

注意:我不想在脚本运行之前设置限制。

答案

我找到了一个似乎运作良好的原始解决方案。经过对php手册的研究,我编写了这段代码来实现动态内存分配任务。这是代码:

注意:memInfo函数片段取自php手册页上有关memory_get_usage()页面的注释

<?php 

if( memInfo(memory_get_usage(true)) > '128MB' ){
    ini_set('memory_limit', '256M');
}

function memInfo( int $size ){
    $unit = ['B','KB','MB','GB','TB','PB'];
    return @round( $size / pow(1024, ($i = floor(log($size,1024)))),2).$unit[$i];
}

以上是关于动态内存分配php的主要内容,如果未能解决你的问题,请参考以下文章

每日一练5

C - 读取文件并将文本放入具有动态内存分配的字符指针

如何使用 malloc 和 free 进行动态内存分配

PHP7做了哪些优化

简单动态内存分配实现(附代码)

golang 转到片段以观察运行时行为和内存分配