在方法末尾 returning nil 或布尔值是否比让 Ruby return 最后一行代码的结果更高效?

Is returning nil or a boolean at the end of a method more performant than letting Ruby return the result of the last line of code?

众所周知Ruby,方法的最后一行是该方法的"returned"值。

假设您有一个构建重对象的过程(又名,一种我们只希望它工作而不关心 return 值的方法),或者它的最后一行是 Rails 记录器语句或其他一些 class 实例。

如果你只是在最后一行添加一个 "nil" 或 "boolean" 而不是 returning 那个沉重的对象,那么它是否更高效(或以某种方式消耗更少的资源)不使用那个 return 值?

def test_method
    some_big_object
end

def test_method
    some_big_object
    nil # or true/false
end

在我看来,就纯对象分配、内存性能而言,第一个选项更好。仅仅因为方法 "returns" 是一个未使用的大对象,并不意味着它需要任何进一步处理或导致任何额外的内存膨胀。

第二个选项看起来实际上稍微差一点,因为它现在创建了一个额外的对象。

我想添加额外的 return 行,尤其是当 return 行不是 nil 时,这是多余和浪费的。 Ruby,甚至 JRUBY 的垃圾收集肯定比那更聪明?

我确实意识到 returning nil 可能有一些好处,可以防止其他开发人员尝试使用此方法来 return 一个仅用于工作的值。但是单纯说性能,我说的对吗?

任何方法都会 return 一个对象,或者更具体地说:一个 object_id,它只是一个数字。 Nil, false, some_big_object :都只是一个数字。不要打扰。