873 подписчика
Сегодня немного обсудим что такое "inline". Многие слышали про это загадочное слово и знают, что оно очень важно для оптимизации производительности, но не все знают как оно устроено и что вообще делает. Сложное объяснение для самых умных: "inline" используется, чтобы сказать компилятору, что нужно встраивать код функции в место её вызова. Это позволяет избежать накладных расходов на вызов функции и улучшает производительность программы. Кроме того, "inline" позволяет использовать функции с лямбда-выражениями или функциональными интерфейсами более удобным образом...
1 год назад
Изучая производительность методов в различных коллекциях, я наткнулся на интересный факт: там, где нужно выбросить Exception, программисты дёргают метод в статическом классе, в котором и происходит throw. Поначалу я думал, что это просто удобно - иметь все ошибки в одном месте и там следить за их единообразием. Это да, это действительно удобно. Вторая проблема - inline. Дело в том, что JIT по-умолчанию старается не инлайнить методы с throw, чтобы избежать сложной обвязки вокруг выброса исключения...
2 года назад