2009-09-14 2 views
1

Я пытался найти его в сети в течение недели и ничего не нашел. Я хочу знать, каков размер свободного места на рабочем столе, который остался. api тоже хорошо i can not install Desktop Heap Monitor. спасибоКак получить размер свободной кучи рабочего стола?

+1

Зачем вам это нужно знать? Для целей отладки? Если вы приближаетесь к пределу, вы делаете что-то неправильно ИМХО. – Tadmas

+0

Понюхать, понюхать ... что это за запах? – Will

+0

btw законный вопрос; не знаю, почему близкие голоса – Will

ответ

0

Количество оставшейся кучи осталось на самом деле не очень интересное число. Площадь кучи ограничена объемом памяти, к которой может обратиться приложение, или объемом виртуальной памяти системы, который когда-либо на первом месте.

Если вы близки к заполнению размера виртуальной памяти, система уже поменяла половину ее на диск, поэтому в этот момент у вас есть система, делающая слишком большую замену дисков.

Я не знаю точно, что вы хотите узнать об использовании памяти, но количество оставшегося пространства кучи, скорее всего, не скажет вам ничего полезного.

+0

Как я понимаю, OP не спрашивает о куче пространства, но место для кучи рабочего стола, что совсем другое. См. Http://www.microsoft.com/downloads/details.aspx?familyid=5cfc9b74-97aa-4510-b4b9-b2dc98c8ed8b&displaylang=en –

1

Я не уверен, насколько хорошо он будет знать, сколько кучи рабочего стола бесплатно. Из On the unanswerability of the maximum number of user interface objects a program can create:

Хотя можно придумать теоретического максимального количества окна классов, которые могут поместиться в настольном куче, что число не достижимо в практике, потому что кучи рабочего стола совместно со всеми другой пользовательский интерфейс объекты на рабочем столе.

Дело в том, что в любой момент времени, зная количество свободной рабочей кучи, вы не укажете, сколько еще объектов вы можете создать.

Обычно, когда кто-то задает этот вопрос, реальная проблема заключается в том, что они разработали систему к точке где кучи рабочего стола утомление имеет стать проблемой, и они должны перепроектировать программу так, что они Арен 't так расточитель ресурсов кучи рабочего стола в общий.

В идеале вам не нужно знать, сколько у вас свободной кучи рабочего стола. Если это проблема, вероятно, вам стоит взглянуть на переработку вашего приложения. The "Error creating window handle" exception and the Desktop Heap говорит то же самое другими словами:

Увеличение кучи рабочего стола является эффективным решением, но это не Конечной один. Реальное решение состоит в потреблять меньше ресурсов ...

и приводятся примеры того, как перепроектировать приложения:

  • Используйте TabControls и создать содержание каждой вкладки на лету, когда он становится видимый;
  • Используйте расширяемые/сжимаемые области и снова заполняйте их элементами управления и данными только при необходимости;
  • Освободите ресурсы как можно скорее (используя метод Dispose). Когда регион рухнут, можно очистить его дочерние элементы управления.То же самое для вкладки, когда она становится скрытой;
  • Используйте шаблон проектирования MVP, который помогает сделать вышеизложенное возможным, поскольку он отделяет данные от представлений;
  • Используйте механизмы компоновки, стандартные потоки FlowLayoutPanel и TableLayoutPanel или собственные, вместо того, чтобы создавать глубокие иерархии вложенных панелей, GroupBoxes и Splitters (сам пустой сплиттер потребляет три окна ...).
Смежные вопросы