繁体   English   中英

Ruby性能与多行代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM