Для выполнения научной задачи потребовался массив объемом 160 ГиБ с поддержкой быстрого случайного доступа. В качестве аппаратной базы использовался выделенный сервер на базе процессора AMD EPYC 7713, оснащенный 64 физическими и 128 логическими ядрами, а также 256 ГБ оперативной памяти стандарта DDR4-3200.

В ходе эксперимента сравнивалась производительность при работе с обычными страницами памяти по 4 КиБ и гигабайтовыми Huge Pages. При использовании стандартных страниц первое обращение к массиву объемом 160 ГиБ сопровождалось более чем 42 миллионами малых page faults, что увеличивало время выполнения операции на 69 секунд из-за необходимости обработки страниц ядром ОС.

Для оптимизации потребления ресурсов данные были плотно упакованы по 5 байт, что позволило сократить объем занимаемой оперативной памяти с 256 ГиБ до 160 ГиБ. Тесты подтвердили, что использование срезов Go не создает дополнительных задержек по сравнению с прямым использованием mmap, так как основные издержки приходятся на выделение физических страниц.

Многопоточная обработка данных позволила существенно ускорить процесс: при разделении массива на 120 участков время первичного заполнения сократилось с 261,49 секунды до 7,15 секунды. Использование Huge Pages признано критически важным для минимизации промахов TLB при выполнении операций случайного чтения и записи в больших массивах данных.