Могу ли я сделать что-нибудь, чтобы уменьшить утечку ресурсов GDI в Windows?

1149
sharptooth

Во всех системах Windows существует проблема, заключающаяся в ограничении графических примитивов, которые могут использоваться во всей системе. Что приводит к следующему: как только я запустил несколько (на самом деле что-то вроде 25+) приложений с богатым графическим интерфейсом, таких как Visual Studio или Internet Explorer, я не могу больше открывать окна - в зависимости от того, как приложение реагирует на это, либо ничего не происходит, либо сообщается об ошибке.

Можно ли что-то настроить в Windows, чтобы хотя бы увеличить верхний предел для этих примитивов?

3
это не "утечка", это "предел" Steven A. Lowe 14 лет назад 1
Меня удивляет, почему вам нужно 25 экземпляров Visual Studio в любой момент времени. Joey 14 лет назад 0
Что ж, довольно типично иметь, скажем, 5 экземпляров VS для поиска «как это работает» в других проектах, Outlook и нескольких экземплярах IE. Этого может быть достаточно, чтобы достичь предела. sharptooth 14 лет назад 0

2 ответа на вопрос

3
Paxxi

Взгляните на эту статью MSDN . Он объясняет, как увеличить лимит объектов GDI в вашей системе

В этой статье MSDN объясняется, как увеличить лимит объекта User.

Обе ссылки только дают указатели, как изменить ограничение на процесс. Это не повлияет на общесистемный лимит, с которым сталкивается OP. По умолчанию ограничение в 10 тыс. Дескрипторов для одного процесса вполне достаточно. VS только съедает около 500 из них. Joey 14 лет назад 1
3
Syclone0044

В этой статье Microsoft NTDebugging подробно объясняется, как можно исчерпать кучу рабочего стола и предотвратить открытие дополнительных окон. Действительно, это было решающее решение моей собственной проблемы открытия большого количества программ на рабочих станциях Windows 2000 и Windows XP. Мне пришлось увеличить значение «3072» до «8192», прежде чем я его исправил, после этого у меня НИКОГДА не заканчиваются ручки, даже при одновременном открытии 310 вкладок Chrome плюс около 20 других приложений на 4 ГБ ОЗУ WinXP 32- битовая система.

Я не знаю о вас, но мой Chrome почти останавливается, как только я преодолеваю ~ 100 вкладок на 4 ГБ Windows 7 ... Bigbio2002 11 лет назад 0
Теперь у меня до 1 018 вкладок в 26 окнах Chrome в моей 32-битной системе WinXP 4 ГБ. Да, я знаю, что это безумие. Вы должны контролировать через ProcExp, чтобы увидеть, является ли узкое место процесс, диск или процесс Flash. 100 вкладок - ничто для гладкой работы системы! Syclone0044 11 лет назад 0
Все ли останавливается, когда вы пытаетесь переключать вкладки, или все гладко? Держу пари, это как-то связано с моими графическими драйверами ... Bigbio2002 11 лет назад 0
Теперь все нормально, когда у меня есть файл подкачки на SSD. До этого я использовал 8GB Commit 32,3-битной оперативной памяти. Теперь я могу использовать 9GB Commit, и он даже не замедляется, так как SSD-доступ к файлам страниц очень быстрый. Syclone0044 11 лет назад 0
Ах, у вас есть SSD, это объясняет ... счастливчик;) Bigbio2002 11 лет назад 0