Потребление памяти окнами CHtmlView MDI - PullRequest
0 голосов
/ 01 февраля 2009

Я обнаружил проблему с классом MFC CHtmlView в приложении MDI. Многократное открытие и закрытие окон приводит к постепенному истощению памяти. Я исследовал проблему и нашел статью MSDN о проблеме BSTR (http://support.microsoft.com/kb/241750), реализовал эти исправления, но все еще происходит большая утечка.

Я идентифицировал проблему как в VC8, так и в VC9, пытался убедиться, что все интерфейсы действительно выпускаются, но я в полном замешательстве. Самый простой способ убедиться в этом - использовать MFC AppWizard (vc8 или vc9) для создания стандартного приложения MDI, изменив только CView по умолчанию на CHtmlView. Скомпилируйте и запустите приложение в режиме отладки, и приложение автоматически откроет новое окно HTML для MSDN.

Откройте TaskManager для отслеживания памяти, используемой приложением. Закройте открытое окно. Затем каждый раз, когда вы снова открываете и закрываете новое окно, вы увидите определенное увеличение памяти, удерживаемой приложением. Как только приложение закрыто, оно не показывает утечек.

Если у кого-то есть какая-либо информация, я был бы признателен от вас.

1 Ответ

0 голосов
/ 25 августа 2010

Вы можете использовать SetProcessWorkingSetSize(pi.hProcess, (SIZE_T)-1, (SIZE_T)-1)) для минимизации рабочего рабочего набора.

http://msdn.microsoft.com/en-us/library/ms686234(VS.85).aspx

http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/88c21427-e765-46e8-833d-6021ef79e0c8

...