Scroll Viewers как мастер управления видеопамяти - PullRequest
0 голосов
/ 19 октября 2011

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

Мой вопрос такой

  1. Это то, что мы называем видеопамятью?
  2. Наблюдаем ли мы тоже самое в приложениях WinForms? Я спрашиваю об этом, потому что я видел, что MSWord не делал ничего подобного, когда минимизировал это.
  3. Кроме того, если ОС Windows так хорошо управляет этой памятью, то почему мы не виртуализировали все, т. Е. Вместо создания панелей виртуализированных стеков, почему бы нам не сделать просмотрщики прокрутки мастером виртуализации интерфейса пользователя?

Надеюсь, я получу интересные ответы на этот вопрос.

1 Ответ

1 голос
/ 19 октября 2011

Видеопамять это нечто совершенно другое.Он используется графической картой для хранения текстур, изображений на экране, ввода / вывода программ шейдеров и т. Д.

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

Приложения WinForms этого не делают - они рендерится только с использованием GDI и, как таковые, если что-то не происходит вне экрана, используется гораздо меньше видеопамяти.

Наконец, вы не можете измерить видеопамять без использования специального инструмента,Любая память, которую вы видите при восстановлении / сворачивании окон и т. Д. В диспетчере задач, - это не видеопамять, а «обычная» память.На самом деле вы можете видеть основную системную память, используемую для видеопамяти в крайне низкоуровневой системе, но, скорее всего, WPF не нужно сохранять столько вещей текущими в случае, если окно свернуто, поэтому некоторые объекты освобождаются.

Как таковой, я не понимаю, что вы подразумеваете под «если ОС Windows так хорошо управляет этой памятью» - виртуализация может быть полезна в некоторых вещах, но, конечно, имеет свои многочисленные недостатки, особенно в WPF, поэтомуВы бы не использовали его повсюду.

...