Я тестирую приложение с несколькими экземплярами одного и того же приложения. Я обнаружил, что привязка их процессов (с sched_setaffinity под Linux, с TaskManager под Windows) к конкретным процессорам увеличивает производительность. Итак, у меня было бы:
* whatever.exe pinned to CPU 1
* whatever.exe pinned to CPU 2
* whatever.exe pinned to CPU 3
* whatever.exe pinned to CPU 4
у каждого файла what.exe есть свои буферы и кучная память. Я хочу избежать того, чтобы процесс на ЦП 1 имел доступ к ОЗУ с ЦП 2, потому что с Core Microarchitecture от Intel для этого потребуется переход QPI к следующему процессору.
Как я могу определить под Windows, какая оперативная память процессора используется процессом? Как я могу это сделать в Linux?
Я думаю о таком ответе, как «процесс X имеет свою RAM от физического адреса RAM Y до Z, а CPU A напрямую подключен к RAM от адреса B до C».
Есть ли в Windows инструмент, чтобы получить такой ответ?