?: Оператор, по сравнению с если производительность оператора

Вместо «doc ['variable_group.variant_info']» вы должны использовать «doc ['variable_group'] ['option_info']» или «doc.variant_group.variant_info». Мне также повезло с "_source.variant_group.variant_info".

33
задан Wai Ha Lee 15 October 2015 в 16:08
поделиться

5 ответов

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

68
ответ дан PhilChuang 27 November 2019 в 17:21
поделиться

Вы пробуете к , микрооптимизируют здесь, и это обычно - большое нет - нет. Если у Вас нет аналитики производительности, которая показывает Вам, что это - проблема, это даже не стоит изменять.

Для общего использования, корректный ответ - то, что легче поддержать.

Для ада его, хотя, IL для пустого оператора объединения:

L_0001: ldsfld string ConsoleApplication2.Program::myString
L_0006: dup 
L_0007: brtrue.s L_000f
L_0009: pop 
L_000a: ldsfld string [mscorlib]System.String::Empty
L_000f: stloc.0 

И IL для переключателя:

L_0001: ldsfld string ConsoleApplication2.Program::myString
L_0006: brfalse.s L_000f
L_0008: ldsfld string ConsoleApplication2.Program::myString
L_000d: br.s L_0014
L_000f: ldsfld string [mscorlib]System.String::Empty
L_0014: stloc.0 

Для пустой оператор объединения, если значение null, то шесть из операторов выполняются, тогда как с switch , четыре операции выполняются.

В случае не null значение, пустой оператор объединения выполняет четыре операции по сравнению с пятью операциями.

, Конечно, это предполагает, что все операции IL занимают то же количество времени, которое не имеет место.

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

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

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

72
ответ дан Servy 27 November 2019 в 17:21
поделиться

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

, Если Вы не на самом деле измерение производительность, это - все в Ваших главных и досужих домыслах.

(Для не выбирания Вас в частности, но настолько неутешительно видеть вопрос после вопроса о микрооптимизации производительности (а также многие ответы), которые не содержат слово "мера".)

18
ответ дан Brian 27 November 2019 в 17:21
поделиться

Я подозреваю, что не будет никакого различия в производительности.

, Рядом с который, интересно, почему у Вас были бы какие-либо проблемы одобрения одного оператора по другому в этом случае? Я имею в виду: влияние производительности (если бы должен быть кто-либо), было бы минимально. По моему скромному мнению, это было бы своего рода микрооптимизацией, и это не должно стоить усилия.
я выбрал бы оператор, который является самым читаемым, самым ясным, и не беспокойство о производительности, так как это имело бы минимальное влияние (в этом случае).

7
ответ дан Frederik Gheysels 27 November 2019 в 17:21
поделиться

Почти никакое значительное различие в производительности в этом случае.

, Когда различие в производительности незначительно, это - все приблизительно читаемый код .

7
ответ дан Chris Ballance 27 November 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: