Вместо «doc ['variable_group.variant_info']» вы должны использовать «doc ['variable_group'] ['option_info']» или «doc.variant_group.variant_info». Мне также повезло с "_source.variant_group.variant_info".
По моему скромному мнению, оптимизируйте для удобочитаемости и понимающий - любое увеличение производительности во время выполнения, вероятно, будет минимально по сравнению со временем, она берет Вас в реальном, когда Вы возвращаетесь к этому коду в паре месяцев и пытаетесь понять, какого черта Вы делали во-первых.
Вы пробуете к , микрооптимизируют здесь, и это обычно - большое нет - нет. Если у Вас нет аналитики производительности, которая показывает Вам, что это - проблема, это даже не стоит изменять.
Для общего использования, корректный ответ - то, что легче поддержать.
Для ада его, хотя, 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 занимают то же количество времени, которое не имеет место.
Так или иначе, надо надеяться, Вы видите, как оптимизация в этом микро масштабе может начать уменьшать возвраты довольно быстро.
Однако в конце, для большинства случаев вообще является самым легким считать и поддержать, в этом случае правильный ответ.
, Если Вы находите, Вы делаете это в масштабе, где это оказывается неэффективным (и те случаи немногочисленны), затем необходимо иметь размеры для наблюдения, который имеет лучшую производительность, и затем сделайте ту определенную оптимизацию.
я думаю, что мои изменения, возможно, замедлили мое приложение, но это могло бы просто быть в моей голове.
, Если Вы не на самом деле измерение производительность, это - все в Ваших главных и досужих домыслах.
(Для не выбирания Вас в частности, но настолько неутешительно видеть вопрос после вопроса о микрооптимизации производительности (а также многие ответы), которые не содержат слово "мера".)
Я подозреваю, что не будет никакого различия в производительности.
, Рядом с который, интересно, почему у Вас были бы какие-либо проблемы одобрения одного оператора по другому в этом случае? Я имею в виду: влияние производительности (если бы должен быть кто-либо), было бы минимально. По моему скромному мнению, это было бы своего рода микрооптимизацией, и это не должно стоить усилия.
я выбрал бы оператор, который является самым читаемым, самым ясным, и не беспокойство о производительности, так как это имело бы минимальное влияние (в этом случае).
Почти никакое значительное различие в производительности в этом случае.
, Когда различие в производительности незначительно, это - все приблизительно читаемый код .