PHP:内存优化级联?

Posted

tags:

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

考虑以下代码:

$fullText = $beforeStore . $store . $afterStore;

如果$store很大并且想要优化内存使用(memory_get_peak_usage),他们会发现这里他们使用三倍的内存来保持$store,因为$store . $afterStore是另一个值(或更大)以及$beforeStore . $store . $afterStore。所以要优化,我用过

$fullText = $beforeStore . $store;
unset($store);
$fullText = $fullText . $afterStore;

它只给出两次memory_get_peak_usage和最终状态(memory_get_usage)与初始相同(我在这里省略unseting $beforeStore$afterStore)。

是否有一些聪明的方法以这种优化的方式连接,但没有编写1 + n行代码,其中n是连接字符串的数量? (如果我们想取消每个连接的行,则为2n)

答案

使用字符串插值而不是连接,因此不需要为部分结果创建中间字符串。

$fullText = "{$beforeStore}{$store}{$afterStore}";

以上是关于PHP:内存优化级联?的主要内容,如果未能解决你的问题,请参考以下文章

php程序内存优化之数组操作优化

PHP 代码优化建议

PHP代码编写的优化

动态内存分配php

PHP7做了哪些优化

element Cascader 级联选择器动态加载实例