Производительность Ruby с несколькими строками кода - PullRequest
0 голосов
/ 14 мая 2018

Есть ли различия в производительности между этими двумя реализациями кода?

Первая реализация:

class AppSerializer < ActiveModel::Serializer
  attributes :name, :device, :identify, :token, :color
end

Вторая реализация:

class AppSerializer < ActiveModel::Serializer
  attributes :name,
             :device,
             :identify,
             :token,
             :color
end

Что лучше для производительности

1 Ответ

0 голосов
/ 14 мая 2018

Синтаксически эти два идентичны, нет никакой разницы. Когда синтаксический анализатор Ruby задействует этот код, произойдет почти неизмеримое увеличение времени, необходимого для обработки символов новой строки, но мы говорим о, возможно, небольшом количестве тактов на процессоре, который будет работать при 2 миллиард часов в секунду или больше. В лучшем случае это наносекунды .

Кроме того, этот оператор выполняется только один раз при создании модели, поэтому трудно будет измерить незначительное влияние на производительность. Температура вашего процессора, которая влияет на скорость процессора, гораздо более значительна, и она будет достаточно колебаться, чтобы получить хорошее чтение здесь невозможно.

Меньше строк не быстрее. Меньше персонажей не быстрее. Производительность не зависит от этого.

Если вам когда-нибудь интересно узнать производительность, сравните ее, но это относится только к коду, который существенно отличается. В этом случае код идентичен, кроме форматирования.

Причина разработки Ruby заключается в том, чтобы ускорить разработку для разработчика, чтобы вы могли выразить свои намерения быстро, кратко и таким образом, чтобы их было легко прочитать позже. Это происходит за счет производительности, но, как разработчики Ruby, мы охотно идем на эту уступку.

Если что-то должно быть быстрым, всегда есть способы его оптимизировать, но важно избегать преждевременной оптимизации. Если это работает и работает в соответствии с вашим вариантом использования, потратьте свое время на решение новых проблем, а не перефразируя старые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...