Владислав Шпилевой
Компания: VK / Tarantool
Повышение производительности сервера обычно включает достижение следующих целей: снижение задержки (latency), увеличение количества запросов в секунду (RPS) и снижение нагрузки на CPU и память. Этих целей можно достичь путем архитектурных изменений, таких как уменьшение количества походов по сети, горизонтальное и вертикальное масштабирование и т. д. Однако этот доклад о другом — о коде.
Я классифицирую основные источники деградации производительности кода на три группы:
Представляю серию кратких и простых низкоуровневых рецептов того, как достичь производительности за счет оптимизации кода. Несмотря на то, что для этого обычно требуются совсем точечные изменения, они могут ускорить код в N раз.
Предложения направлены на устранение проблем мест из списка выше. Предлагаемые оптимизации могут сделать архитектурные изменения ненужными или даже позволить упростить всю систему, если существующие серверы начнут легко справляться с нагрузкой. Кроме того, изменения могут сделать код более чистым и выявить больше узких мест для дальнейшего исследования.
Компания: VK / Tarantool
Компания: Независимый эксперт