Я предполагаю, что игровой сервер является многопоточным.Если это так, вы можете прагматично навязать привязку ЦП к приложению.Если бы у вас был способ узнать, есть ли в игре пользователи или нет, то есть, если на назначенный порт приходят UDP-пакеты, вы можете сказать «эй, никто не подключен».После этого ваша программа может принудительно заставить все рабочие потоки работать на одном и том же ядре.
Итак, если у вас 8-ядерный процессор и все потоки находятся на одном ядре, то самое большее она будет использовать 12,5% ЦП.
Как только вы видите пакеты, поступающие на назначенный порт, вы можете назначить сходство всем ядрам.
Вы можете сделать еще один шаг и сказать «Есть ли какие-нибудь« бездействующие »игры».Если есть какие-либо пустые игры, которые все включены ... скажем, .. core 7, то запустите бесконечный цикл инструкции HLT с более высоким приоритетом, чем игра, но заставьте поток спать, чтобы он не голодал полностьюигра.
Это приведет к тому, что ЦП будет потреблять меньше энергии, но будет гораздо больше работы и с большей вероятностью возникновения проблем.
Я бы придерживался только принудительного сродства, и простопусть все бездействующие игры разделяют некоторое данное ядро.