Рабочие показатели системы, инструменты мониторинга и отладки // Бесплатный урок OTUS
Cache-conscious размещение данных в Rust: зонирование полей, false sharing и правило 128 байт
Автор блога (ник eigenBasis на Hacker News) продолжает серию «Низкоуровневый системный дизайн в Rust» постом о размещении данных в памяти многопоточных структур. Отправная точка, SPSC-кольцевой буфер (single-producer/single-consumer ring buffer): один поток-производитель дописывает элементы, один поток-потребитель их вычитывает, координируясь через два счётчика, tail (куда пишет производитель) и head (откуда читает потребитель). Центральная проблема, false sharing («ложное разделение»): если два...