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)与初始状态相同(我省略unset ING $beforeStore$afterStore)。

是否有一些智能的方法可以以这种优化的方式连接,但没有编写1 n行的代码,而n是串联字符串的数量?(或2N,如果我们想拆除每条串联线)

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

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

最新更新