Вот другой вопрос
Почему вы думаете, такая небольшая оптимизация будет иметь значение в более широком контексте вашей программы?
Я считаю, что высоко маловероятно, что микро-оптимизации, такие как это будет иметь ощутимое влияние на вашу программу. Вы никогда не должны микро-оптимизировать, как это, если профайлер специально не показал, что это проблема.
EDIT Добавление некоторого разъяснения похоронено в комментариях
Причина нет большого ответа на этот вопрос в том, что выполнение этого кода сильно зависит от ...
- Путь в котором он используется в вашей программе
- Специальный компилятор, который вы используете
- Флаги оптимизации, переданные вашему компилятору
- Конкретная архитектура вы работаете код на
- Много других очень маленьких вещей, которые не были включены в вопрос
Даже если вся эта информация была включена, наши ответы будут догадок в лучшем случае. Единственный способ ответить на этот вопрос - выскочить профайлер и узнать, что быстрее.
Однако это почти наверняка не стоит усилий. Микро-оптимизация такой небольшой части вашей программы почти наверняка не добавит каких-либо заметных преимуществ перед вашим кодом. В общем, это очень плохая идея для оптимизации такого кода, если только профайлер не говорит вам, что это проблема. В противном случае вы потратите много времени на то, чтобы оптимизировать что-либо без каких-либо приемлемых преимуществ.
Да, есть случаи, когда такая оптимизация может быть важной.Но это было бы только в очень специальным обстоятельствах, когда код был частью очень жесткого высоко называемого цикла. Однако единственный способ идентифицировать такой код - использовать профилировщик.
Почему бы вам не написать программу, которая выполняет несколько миллионов операций каждого типа, а затем измерять, сколько времени потребуется для каждого? Вполне вероятно, что компилятор не видит никакой разницы между b и c, например. –
microbenchmark много? – basszero
Проблема в том, что на этот вопрос нельзя ответить в общем смысле этого термина. Если бы вопрос был самым быстрым способом при использовании процессора X, OS Y, компилятора Z на уровне оптимизации A, то, возможно, ответ был бы значимым. Во всех других ситуациях ответ не имеет смысла, поскольку есть слишком много правильных ответов, все из которых ошибочны в разных ситуациях. –