Это ограничение вашего чипсета / видеокарты / драйвера устройства. Windows (или в некоторых случаях BIOS) отображает память на видеокарту, чтобы использовать ее, потому что у нее нет собственной памяти. Windows не может просто использовать его, когда хочет, потому что это будет нарушением разумных принципов. Microsoft думала о том, чтобы отобразить и переназначить эту память выше 4 ГБ в зависимости от использования. Проблема заключалась в том, что это вызвало бы ОГРОМНУЮ нестабильность в потребительских системах. Обратите внимание, что Windows Server НЕ страдает от ограничения в 4 ГБ, даже на компьютерах с архитектурой x86 ...
http://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx#physical_memory_limits_windows_server_2003
Причина была, опять же, в драйверах устройств. Рынок серверов, как правило, имеет меньший рынок драйверов устройств и разработчиков DD, поэтому можно было тестировать и поддерживать большие адресные пространства. Для потребителя это кошмар. Технически операционные системы XP SP2 и выше x86 МОГУТ использовать адрес памяти более 4 ГБ. Хотя не все драйверы устройств поддерживают это, поскольку превышение 4 ГБ означает, что ваши указатели длиннее. Таким образом, DD часто выдает ошибку и, таким образом, вызывает синий экран или даже не загружается.
Еще одно последствие переназначения видеопамяти заключается в том, что видеокарта чувствительна к задержкам . Восстановление памяти обратно на карту включает в себя следующее:
- Перемещение того, что было там, в файл подкачки. , , (спин спин)
- Запись в базу данных карты памяти ОС, куда вы положили файл
- Если для этого нужна заразная память. , , повторите 1 и 2
- Затем видеокарта должна ждать выделения памяти. (крутить пальцы)
- Загрузка текстур для видеокарты. (спин спин)
- Запись в базу данных карты памяти, куда вы положили текстуры
- Затем постоянно опрашивайте видеокарту: «Вы уже закончили? Вы уже закончили? Да! Да !? Ведь Джонни Бой на панели задач ДЕЙСТВИТЕЛЬНО ДЕЙСТВИТЕЛЬНО ДОЛЖЕН БЫТЬ ПЛОХО !!»
- Затем графическая карта решает, основываясь на каком-либо алгоритме, что она должна и не должна сохранять.
- Затем сообщите ОС, какую часть памяти она не использует.
- Все это вовремя, чтобы дать вам 60 кадров в секунду (ну, не технически, но вы видите смысл)
Это также повлияет на все остальные драйверы, которыми управляет ОС, которые чувствительны к задержке, т. Е. Аудиодрайвер (пропустить пропустить) и сетевые драйверы (Эй, как этот парень телепортировался через дверь !?)
Как вы можете решить это? Поощрение более высокого качества разработчиков драйверов устройств. Они очень недооценены и недооценены. Идеи включают в себя отправку местных пакетов помощи разработчикам DD, комплектов Lego Robotics, больших мониторов и, конечно же, женщин.