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