[英]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中,方法的最后一行是该方法的“返回”值。
假设你有一个程序(也就是我们只是希望它工作而不关心返回值的方法)构建一个繁重的对象,或者它的最后一行是一个Rails记录器语句或一些其他类实例。
如果你只是在最后一行添加“nil”或“boolean”而不是在我们不使用该返回值时返回那个重的对象,它是否更具性能(或以某种方式消耗更少的资源)?
def test_method
some_big_object
end
VS
def test_method
some_big_object
nil # or true/false
end
在我看来,就纯对象分配而言,内存性能越高,第一种选择就越好。 仅仅因为该方法“返回”一个未使用的大对象,并不意味着它需要进一步处理或导致任何额外的内存膨胀。
第二种选择似乎实际上是因为它现在创建了一个额外的对象。
我想添加额外的返回线,特别是如果返回线不是零,则是多余的和浪费的。 当然Ruby,甚至是JRUBY,垃圾收集比这更聪明?
我确实意识到返回nil可能会有一些好处,以防止其他开发人员尝试使用此方法返回值时,只是为了工作。 但纯粹谈到表现,我是否正确?
任何方法都将返回一个对象,或者更具体:object_id,它只是一个数字。 Nil,false,some_big_object:只是一个数字。 不要打扰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.