Я читал тесты, которые проверяют преимущества систем с многоканальной архитектурой памяти. Общий вывод большинства этих тестов заключается в том, что преимущества производительности систем с большим количеством каналов памяти по сравнению с системами с меньшим количеством каналов незначительны.
Однако нигде я не нашел объяснения, почему это так, только результаты тестов, указывающие на то, что это реально достигнутая производительность.
Теоретически каждое удвоение каналов памяти системы удваивает пропускную способность доступа к памяти, поэтому теоретически должен быть прирост производительности, однако в реальных приложениях прирост незначителен. Почему?
Мое предположение состоит в том, что когда ядро NT выделяет физическую память, оно не нарушает распределения равномерно по каналам памяти. Если вся виртуальная память процесса сопоставляется с одним каналом памяти в системе MMC, тогда процесс фактически сможет достичь производительности только при наличии в его распоряжении одного канала памяти. Является ли это причиной незначительного прироста производительности в реальном мире?
Естественно, процессу выделяется виртуальная память, а ядро выделяет страницы физической памяти, поэтому является ли этот незначительный прирост производительности ошибкой ядра NT, которое не распределяет выделения по доступным каналам?