Size: a a a

Rust — русскоговорящее сообщество

2021 June 26

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Я бы всегда использовал второй вариант.
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообщество
@niksaak Спасибо за ответ ) На уровне догадок я тоже как-то так и ставлю, но на эту тему как-то нет определенного ответа
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообщество
Кстати, в чём разница между #[inline] и #[inline(always)]?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Ну потому что inline это больше коммент чем что-то ещё.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообщество
Второе - это более убедительная просьба, чем первое
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Даже inline(always) не гарантирует на 100% что компилятор что-то заинлайнит
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Вот да 😂
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообщество
Это я тоже понимаю )
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Как, кстати, и отсутствие inline
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
…не гарантирует что компилятор ничего не заинлайнит.
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Хочешь, чтоб инлайнилось вообще всегда — сделай макрос. Но ты скорее всего не хочешь этого 😅
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Вообще мне возможность поставить #[inline] над функцией без реализации выглядит как недочёт.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообщество
Важное свойство (которое есть и без always, и с ним), это то что собранный .rlib будет содержать тело функции, то есть она может быть заинлайнена в другие крейты.

Без этого атрибута, кажется, инлайнинг через границы крейта не происходит
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Хотя может рассчёт на то что это передадут линкеру?
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообщество
Скажем так, я бы хотел некий бест-пректисес гайд, когда и что ставить. Потому что я расставляю, но это по сути гадание на кофейной гуще получается.
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
С приходом lto это стало не так важно.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообщество
Самый простой подход: забей на эти атрибуты и собирай с LTO
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
^
источник

IL

Ilya Lakhin in Rust — русскоговорящее сообщество
LTO?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообщество
Link-Time Optimization
источник