AT
https://t.me/ProCxx/375199
Size: a a a
AT
m
inline
. Аргументирует это тем, что мы избавляемся от накладных расходов при вызове call
. inline
, который рекомендует компилятору перенести тело функции в место вызова, что технически избавляет нас от лишней call
инструкции. Но не должно же оно так работать! std::error_code error = DoSomething();Если ошибки являются редким кейсом мы засоряем функцию кодом, который почти никогда не будет исполнятся, но будет съедать кэш.
if (error) { HandleError(error); }
RR
std::error_code error = DoSomething();Если ошибки являются редким кейсом мы засоряем функцию кодом, который почти никогда не будет исполнятся, но будет съедать кэш.
if (error) { HandleError(error); }
m
HandleError()
, а не branch prediction. Я сомневаюсь, что likely/unlikely влияют на инлайнинг.RR
HandleError()
, а не branch prediction. Я сомневаюсь, что likely/unlikely влияют на инлайнинг.m
RR
m
YB
inline
есть хороший доклад: https://youtu.be/7nYfsiDGbak?t=341АК
MM
TU-local
.18 00007FF729943360
18 00007FF729943358
00007FF729945700
18 00007FF72994335C
00007FF729945720
AM
18 00007FF729943360
18 00007FF729943358
00007FF729945700
18 00007FF72994335C
00007FF729945720
MM
AM
MM
MM