1 неделю назад
Rust-эксперимент, который красиво объясняет, почему `Vec` почти всегда лучший варинт
Автор взял идею из Linux filesystem: inode хранит метаданные и указывает на блоки данных. Потом задал очень опасный, но полезный вопрос: а что если такую же схему перенести в Rust-контейнер? Так появился PagedSmallVec: сначала маленький inline-буфер, потом данные раскладываются по фиксированным чанкам, а не лежат одним непрерывным куском памяти. Звучит умно. На практике CPU быстро объясняет, кто здесь главный. Обычный Vec почти всегда быстрее, потому что он делает ровно то, что любит процессор:...