我想知道减少变量的数量是否会大大节省或释放内存。有时我会在可读代码或性能之间徘徊。
例如在Ruby中,编写代码更好:
def touch_updated_at
a = self.model_name
a.touch
end
或者这个:
def touch_updated_at
self.model_name.touch
end
考虑到此功能仅用于型号或控制器。无需传递它来查看。请指教。
谢谢。
答案 0 :(得分:1)
这取决于这些变量的数量。通常情况下,两种情况都没有区别。
答案 1 :(得分:1)
我不是任何ruby解释器的实现者,但我认为它们完全一样。
临时局部变量不太可能在之前被垃圾收集,无论它是否被命名。
除非a
实际上是属性,否则
如果您想更改此代码的速度或内存使用情况,您应该更少关注它的外观以及它的功能。
答案 2 :(得分:1)
实际对象可能比引用它们的变量对内存产生更大的影响。
变量的生命周期由其范围决定:
但是,当引用它的所有变量都消失时,对象才会被垃圾收集器释放。此外,它们可能会比参考消耗更多的内存。
您可以将变量视为标识对象的数字。他们使用的内存小到可以忽略不计。我想解释器也可以优化它们。
def touch_updated_at
model_name.touch
end
即使这种用法不会显着提高内存使用率,但 更加简洁。