2013-05-09 1 views
-1

Иногда я замечаю, что после заявления добавьте еще ;.Будут ли бессмысленные точки с запятой влиять на производительность?

Пример:

Console.WriteLine("meow");;

Будет

, которые влияют на производительность в моем приложении? В частности, мне интересно о C#.

+4

Не оставляя вас почесывая голову, когда вы смотрите на код несколько лет назад, задаваясь вопросом, что вы случайно удалили, я скорее сомневаюсь в этом. – Tim

+1

Нет (пятнадцать символов) –

+3

Если у вас есть вопрос о производительности, лучший способ ответить на него - попробуйте его и посмотрите *. Напишите свою программу в обоих направлениях, измерьте производительность в обоих направлениях и посмотрите, есть ли какая-либо статистически значимая разница между ними. –

ответ

4

Отсутствие вообще; это не повлияет на код IL, который генерирует компилятор.

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

Вы могли бы быть заинтересованы в чтении о empty statements, таких как

bool ProcessMessage() {...} 
void ProcessMessages() { 
    while (ProcessMessage()) 
     ; 
} 
+1

Я бы сказал OP, что пустые блоки более читабельны во всех случаях, перечисленных в ссылке, например. 'while (ProcessMessages()) {/ * nothing * /}', но независимо от того, что вы выберете, комментарии тоже хороши, чтобы помочь ему упускать из виду, поддерживая сотрудников. – weston

9

Нет, он игнорируется, поскольку он не скомпилирован ни в один ИЛ.

1

No.

Считайте, что двоеточие - это синтаксис, характерный для данного языка. Компилятор читает ваш код, анализирует его на основе синтаксиса, который он знает, и отображает семантику (смысл) вашего кода, организуя их в структуру (обычно это дерево под названием AST). Это - это то, что оттуда превращается в соответствующие представления на целевом языке (сборка, байт-код, другой язык) - не формат вашего кода.

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

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