哪个语句是内存/处理器高效的


Which statement is memory/processor efficient ?

我没有更好的理由改写这个问题,你可能会建议我一个。大多数时候,我在php中重复使用一个变量,我想知道哪个变量将是内存/处理器效率的。例如

案例 A

 $string_var ='1,2,4,5,6,7,8';
 $array_var  =explode(',',$string_var);

情况 B:重用相同的变量(字符串变量并重新声明为数组对象)

 $array_var ='1,2,4,5,6,7,8';
 $array_var  =explode(',',$array_var);

我的问题不是从代码可读性的角度来看.我想知道哪一种在内存和处理器利用率方面是有效的方法。

$string_var ='1,2,4,5,6,7,8';
$array_var  =explode(',',$string_var);

这会将字符串和数组都保留在内存中,使用更多内存。如果要覆盖原始变量,则先前存储的内容将在某个时候被垃圾回收,从而释放内存。在实践中,它可能不会产生任何真正的区别,因为值不会立即被垃圾回收,如果你的变量范围合理,它们应该很快就会超出范围。

它在处理时间上几乎没有区别。

选择逻辑上更有意义的方法。如果您不再需要$string_var,则无需将其作为单独的变量保留。尝试尽可能整理命名空间。

每次创建新变量时,都会为该变量分配一点内存。因此,2 个变量将占用大约两倍的内存。最好使用相同的变量 Case B,因为它只使用 1 个变量所需的内存。

它们都将以相同的方式影响处理器。但是,案例 B 中的内存使用量会更低,因为您将现有变量更新为新数组。

如果这不是PHP,而是像C这样的"低级"语言,答案很简单:

  1. 速度会稍微高一些(直接将结果重写到内存中的目标位置,跳过重写指针)
  2. 在内存方面会稍微更有效(临时位置在操作后立即释放分配操作的右侧和左侧之间保存结果,只有一个变量永久分配。

由于PHP是一种脚本语言,从长远来看,我只能说B可能会稍微保守一些内存,但数量确实微不足道。除此之外,所有的赌注都关闭了,写一个基准。