[英]Ruby performance with multiple lines of code
这两个代码实现之间在性能上是否存在差异?
首先实现:
class AppSerializer < ActiveModel::Serializer
attributes :name, :device, :identify, :token, :color
end
第二种工具:
class AppSerializer < ActiveModel::Serializer
attributes :name,
:device,
:identify,
:token,
:color
end
哪个对性能更好?
从语法上讲,这两个是相同的,没有区别。 当Ruby解析器使用此代码时,处理换行符所需的时间将几乎不可估量地增加,但是我们正在谈论的也许是少数几个时钟周期,每个时钟将以20 亿个时钟运行秒以上。 充其量是十亿分之一秒 。
此外,在创建模型时,该语句仅运行一次,因此,这样的微小性能影响将难以衡量。 影响CPU速度的CPU温度要重要得多,并且温度波动很大,因此无法在此处很好地读取。
更少的行并不更快。 更少的字符不会更快。 性能与此无关。
如果您对性能感到好奇,请对其进行基准测试,但这仅与本质上不同的代码有关。 在这种情况下,除了格式化外,代码是相同的。
Ruby设计背后的原因是为了使开发人员更快地完成事情,以便您可以快速,简洁地表达您的意图,并以易于稍后阅读的方式表达出来 。 这是以性能为代价的,但是作为Ruby开发人员,我们愿意做出让步。
如果必须快速完成某些事情,总有优化的方法,但是避免过早的优化很重要。 如果它可行,并且在您的用例中表现良好,请花时间解决新问题,而不是重新散布旧问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.