在性能方面哪些更便宜?为什么?虽然对于第一种情况它会创建新变量,但在第二种情况下,它不应该首先取消设置var1
以重新分配它吗?
1)
$var1 = $someBigArray;
$var2 = $this->someFunction($var1);
// use $var2
2)
$var1 = $someBigArray;
$var1 = $this->someFunction($var1);
// user $var1
更新
我真的不能这样做,我只是排除了我的其余代码,询问核心部分并使其看起来更简单
$var1 = $this->someFunction($someBigArray);
答案 0 :(得分:0)
你有两件事,一件是处理其他就是记忆。
关于处理:
在PHP中,你真的不知道变量的类型是什么。如果$ someBigArray和$ this-> someFunction($ var1)的变量类型不相同,那么分配新变量$ var2会贵得多。如果它们是相同的类型($ someBigArray和$ this-> someFunction($ var1)),那么它就更便宜了。(更少处理)
关于记忆: 使用相同的变量可能会使用更少的内存。 RAM的小优化。
内存便宜,你应该更加小心你使用的处理能力。在这些情况下,尝试做基准测试。
答案 1 :(得分:0)
PHP的垃圾收集有点奇怪,当覆盖变量时,它不会(总是?)从内存中刷新。因此,在记忆方面,分配一个新变量并在旧变量上使用unset()
。你真的不希望30Mb的数组浪费在你的记忆中,特别是如果这是一个运行任何时间长度的脚本,或者你曾经有多个它同时运行。
我不知道处理性能。正如纳菲斯所说,尝试一个基准。 (最简单和最愚蠢的方法,制作一个运行1000次的脚本,看看哪个更快)