Про работу с кучей в Vista
От: Аноним  
Дата: 20.05.09 10:38
Оценка:
Привет всем,
вопрос по работе с памятью в 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 вообще другой механизм работы с кучей процесса, или в какую сторону рыть ???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.