首页 » SEO优化 » phpmemorylimit无效技巧_PHP内存耗尽缺点分析

phpmemorylimit无效技巧_PHP内存耗尽缺点分析

访客 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

但是这里有一个很大的问题,php许可访问的内存大小是35389440字节,而实际要分配的只有1406507字节。
为什么要分配的内存比实际许可访问的内存小还会引发致命缺点呢?

查了很多这方面的资料,创造很多这样搜索结果,都是实际要分配的内存要小于许可的内存,但是没有找到对此的解释。

phpmemorylimit无效技巧_PHP内存耗尽缺点分析

首先想到是不是PHP本身这个内存限定功能有bug,于是做了如下实验:

phpmemorylimit无效技巧_PHP内存耗尽缺点分析
(图片来自网络侵删)

1, 天生一个10MB大小的文件 dd if=/dev/zero of=10mb bs=1M count=10

2, 天生如下php文件并访问:

<?phpini_set(\"大众memory_limit\"大众,\公众2M\"大众);echo file_get_contents(\"大众./10mb\公众);?>

创造其报错“Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 10493952 bytes)”,这个报错和我们设置的2M的内存限定,实际要分配10M的情形是一样的。
这解释内存限定本身功能是没有问题的,报错的数据和实际的数据是能对上号的。

那么,上面的问题出在哪里呢?为什么实际要分配的内存比限定的内存要小,还会导致出错?又查了一下php关于memory_limit的解释1:

This sets the maximum amount of memory in bytes that a script is allowed to allocate. This helps prevent poorly written scripts for eating up all available memory on a server. Note that to have no memory limit, set this directive to -1.

这里也没有对上述问题进行解释,只是见告我们memory_limit用来限定一个脚本等分配的内存大小用来保护做事器免受poorly written scripts的影响。
也便是说memory_limit是限定单个PHP运行脚本的可访问内存大小的,那会不会存在一种可能,全体线程中的多个操作加起来的内存超过了总限定大小,但单个操作的内存又只占全体限定的很小一部分,而末了那根压去世骆驼的稻草是PHP报错出来的,以是显示出试图访问内存小于限定的内存大小?为了验证这个猜想,我把上述PHP文件改成这样并访问:

<?phpini_set(\公众memory_limit\"大众,\公众15M\公众);$a = file_get_contents(\公众./10mb\"大众);$b = file_get_contents(\"大众./10mb\公众);?>

创造其报错“Fatal error: Allowed memory size of 15728640 bytes exhausted (tried to allocate 10493952 bytes)”,实际要分配10M内存,小于许可访问的15M,验证了前面的猜想。
也便是说,程序在运行时如果超过设置的内存,PHP报错信息只会提示当前操作试图访问的内存大小。

那么直接增加内存限定的大小就可以办理这个问题了,限定的大小可以通过在php的shutdown函数上注册memory_get_usage函数来统计网站的内存花费,取一个得当的值即可。

标签:

相关文章

R语言中dt包,数据透视表的强大工具

在数据分析与处理领域,数据透视表是一种强大的工具,可以帮助我们快速、直观地观察数据。R语言作为一种优秀的编程语言,同样拥有强大的数...

SEO优化 2024-12-26 阅读0 评论0

R语言中减法操作的详细介绍与应用

R语言作为一种功能强大的统计软件,广泛应用于数据分析和科学研究中。在R语言中,减法操作是一种基本的数学运算,它能够帮助我们解决许多...

SEO优化 2024-12-26 阅读0 评论0

走进IT世界,PL语言助你入门编程之旅

随着互联网技术的飞速发展,IT行业成为了当今社会最具竞争力的领域之一。越来越多的年轻人投身于编程领域,希望在这个充满机遇和挑战的舞...

SEO优化 2024-12-26 阅读0 评论0

R语言mu0,详细挖掘数据分析的利器

随着大数据时代的到来,数据分析已成为各行各业的重要手段。R语言作为一种功能强大的统计分析软件,在我国学术界和产业界得到了广泛应用。...

SEO优化 2024-12-26 阅读0 评论0