PHP:内存优化级联?

时间:2017-12-22 22:04:02

标签: php memory-management

考虑以下代码:

$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和{{1这里)。

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

1 个答案:

答案 0 :(得分:3)

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

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