- Структуры данных, содержащиеся в одной строке кэша, более эффективны.
- Используйте соответствующие контейнеры (например, предпочитайте зарезервированный std :: vector, чем std :: list)
- Организуйте свои данные, чтобы избежать дыр в выравнивании (сортировка элементов структуры путем уменьшения размера является одним из способов)
- Не пренебрегайте кешем при разработке структуры данных и алгоритмов
- Используйте меньшие типы данных
- Остерегайтесь стандартного распределителя динамической памяти, который может образовывать дыры и распространять ваши данные в памяти по мере ее нагрева.
- Убедитесь, что все смежные данные действительно используются в горячих петлях. В противном случае рассмотрите возможность разделения структур данных на горячие и холодные компоненты, чтобы горячие контуры использовали горячие данные.
- Избегайте алгоритмов и структур данных, которые демонстрируют нерегулярные шаблоны доступа, и отдавайте предпочтение линейным структурам данных.
- Знать и использовать неявную структуру данных
АРИЭЛЬ СИЛАГЯН