Влияние на производительность использования пробелов вместо вкладок для отступа - PullRequest
9 голосов
/ 10 июня 2011

В настоящее время я использую мягкие вкладки (то есть пробелы) для отступа в моем коде Ruby. Если бы я использовал жесткие вкладки, это увеличило бы производительность при интерпретации кода?Я предполагаю, что быстрее читать один символ табуляции, чем анализировать 4 пробела (хотя и незначительно).

Ответы [ 3 ]

11 голосов
/ 10 июня 2011

У вас есть представление обо всех этапах интерпретации из источника?Только самый первый, лексический анализ, имеет дело с пробелами, а в случае пробелов «иметь дело с» означает «игнорировать его».Этот этап занимает лишь небольшую часть общего времени, обычно он выполняется с использованием регулярных выражений и в значительной степени имеет линейную сложность.Сравните это с разбором, который может занять много времени в сравнении.И интерпретация является лишь несколько жизнеспособной, потому что эти две фазы (плюс третья, генерация байт-кода, в реализациях, использующих байт-код), занимают намного меньше, чем фактическое выполнение для нетривиальных программ.Нет никакой разницы, кто-либо когда-либо заметит.Честно говоря, я был бы удивлен, если бы вы могли измерить разницу, используя time и небольшую программу, которая практически не работает.

9 голосов
/ 10 июня 2011

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

Пожалуйста, используйте пробелы.Подпись, следующий парень, который прочитает твой код.

8 голосов
/ 10 июня 2011

Влияние на производительность равно & epsilon ;, то есть очень маленькое число больше нуля. Пробелы читаются и анализируются только один раз, затем код Ruby преобразуется в промежуточную форму.

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