这两个代码实现之间的性能是否存在差异?
首先实施:
class AppSerializer < ActiveModel::Serializer
attributes :name, :device, :identify, :token, :color
end
第二次实施:
class AppSerializer < ActiveModel::Serializer
attributes :name,
:device,
:identify,
:token,
:color
end
哪种表现更好?
答案 0 :(得分:5)
从句法上讲,这两者是相同的,没有区别。当Ruby解析器参与此代码时,处理换行符所需的时间几乎无法估量,但我们在谈论可能是CPU上的少数几个时钟周期。每秒运行2 十亿时钟或更多。那,最好是纳秒。
此外,此语句仅在创建模型时运行一次,因此很难衡量这种微小的性能影响。 CPU的温度会影响CPU的速度,这个温度会更加显着,并且会有足够的波动,因此无法在此处获得良好的读取。
更少的线条不会更快。较少的字符不会更快。表现与此无关。
如果您对性能感到好奇,请对其进行基准测试,但这只与代码有很大不同。在这种情况下,代码与格式化完全相同。
Ruby设计背后的原因是为了让开发人员更快地完成任务,您可以快速,简洁地以及以后易于阅读的方式表达您的意图。这是以性能为代价的,但作为Ruby开发人员,我们愿意做出让步。
如果某些事情必须快速,那么总是有优化方法,但避免过早优化很重要。如果它有效,并且它能够充分发挥您的用例,那就把时间花在解决新问题上,而不是重新解决旧问题。