Я бы сказал, профиль первым!
Физическое местоположение не влияет на время доступа. Только адресное пространство кажется линейным, но может быть фактически отображено на любую страницу физической памяти.
Вам потребуется пользовательское размещение и VirtualLock, чтобы получить некоторый контроль над физическим расположением страниц.
Примечания
Обычно использование общих библиотек DLL точно устраняет проблему, которую вы обрисовали, путем совместного использования страниц с другими процессами, для которых сопоставлено то же изображение. Это приводит к уменьшению количества кэшируемых страниц и уменьшению необходимости их замены.
Я бы сказал, что сегмент данных на самом деле не отображается, а скорее выделяется из частного пространства адресов процессов, поэтому локальность может быть аналогична статически связанным сегментам данных. Вы можете попробовать использовать отладчик / визуализатор кучи, чтобы узнать, как это работает).
Если вам нужны простые средства для получения полного контроля, просто выделите все из HEAP - используя предпочитаемую схему распределения. Если есть статические данные из DLL, просто скопируйте их в эту область?