Джерело:
Хабрахабр / Захабренные / Тематические / Посты
Дата публікації:
17/08/2026 10:05
Постійна адреса новини:
http://www.vsinovyny.com/13147246
17/08/2026 10:05 // Хабрахабр / Захабренные / Тематические / Посты

Привет, Хабр!
У меня есть для вас очень простой способ испортить себе вечер. Поставьте cargo-llvm-lines, запустите на своём проекте и посмотрите не на первую колонку, а на вторую, которая называется Copies. Сверху почти наверняка будет core::ptr::drop_in_place, дальше что-нибудь из Vec, потом хвост от serde. И напротив каждой строчки будет стоять не единица.
Обычная реакция в этот момент: ну да, дженерики, зато быстро, а одинаковые копии потом схлопнет LLVM. Часть действительно схлопнет. Только не тем механизмом, о котором вы подумали, и точно не тем, который вы включили в Cargo.toml.
В статье узнаем откуда берутся копии, почему Vec и Vec в бинарнике сливаются в одну функцию, а Vec и Vec не сольются ни при каких настройках, что от этого видно в именах символов, как с той же проблемой воюет сам std и куда делась полиморфизация, которую пять лет ждали как лекарство.
| « |
Наступна новина з архіву Митниця використовуватиме планшети з централізованим керуванням |
Попередня новина з архіву Как я ускорил TypeScript-типы в 15.7 раза |
» | |
|
|
||||