Привет всем,
вопрос по работе с памятью в Vista —
есть приложение, которое занимается длительными вычислениями, загружая данные с SQL сервера.
Естественно, виртуальной памяти потребляется много, поэтому
встроен механизи сборки мусора, если приложение не активно и нет ввода пользователя.
В Win XP и 2000 все работает превосходно, в TaskManager видно, что потребление памяти падает
с 90 до 5 Мб (это пример) в свернутом состоянии.
Но в Vista ( Ultimate ) потребление памяти вообще не меняется, как было 90, так и есть, хотя в логфайле приложения
читаем, что деструкторы вызываются. Учетная запись пользователя не админская, файлы в закрытых для записи каталогах не используются.
Компилятор MS VC ++ 6.0 Enterprice. От типа SQL сервера это не зависит, проверено. Пример кода удаления обьектов:
CArray<CModuleDescriptor*,CModuleDescriptor*> objects;
. . .
void Cleanup2()
{
for( int i=0;i<objects.GetSize();i++)
{
delete objects[i];
objects[i] = 0;
}
objects.RemoveAll();
};
Что это может быть, вопрос к тем кто уже с этим сталкивался — это неправильно работают
malloc — free, или в Vista вообще другой механизм работы с кучей процесса, или в какую сторону рыть

???