Я пытаюсь добиться максимальной производительности от фрагмента кода ...
Обычно это неправильный подход. Лучшим подходом является оптимизация кода, который явно снижает производительность вашего приложения. Кроме того, «максимум» - не лучшая цель. Лучшая цель - «достаточно хороша». (До определенного момента время разработчика программного обеспечения дороже, чем время процессора. И это, безусловно, более дефицитный товар!)
Вот что я рекомендую вам сделать.
Завершите работу своего приложения.
Создайте реалистичный c тест, который проверяет этот код на реальных данных.
Профиль приложение, запускающее тест, чтобы измерить, какой процент времени ваше приложение проводит в этой части кода.
Оцените потенциальную производительность, которую вы можете получить за счет оптимизации. Например, если встраивание этих вызовов улучшает этот код на 10%, и этот код представляет 5% от общего времени ЦП приложения, то вы получите общее увеличение производительности ЦП на 0,5% от этой оптимизации.
Теперь решите:
- Стоит ли возможное / вероятное повышение производительности усилий по разработке?
- Стоит ли (гипотетически) снизить ремонтопригодность системы?
Если да: выполните оптимизацию и измерьте .
- Вы действительно достигли ожидаемой производительности?
- Стоит ли «ущерб» ремонтопригодности?
(Если минимизация времени ЦП не является вашей целью, измените методологию соответствующим образом. Например, если вы хотите минимизировать время запросов, тогда вам также необходимо учитывать время, затрачиваемое на серверную базу данных и т. д.)
В этом случае, как мне кажется, предложенная вами оптимизация, вероятно, даст небольшую разницу в производительности. Включение вызовов вручную может сократить количество машинных инструкций (скажем, 3 или 4) на вызов. Однако я сомневаюсь, что это окажет существенное влияние на общую производительность приложения.