Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

"Недостаточно памяти для завершения операции"   Найти похожие ветки 

 
alexey_potapov ©   (2006-11-17 17:28) [0]

Ошибка: "Недостаточно памяти для завершения операции".
При авто тестировании приложения (многочисленном открытии / закрытии окон)
наблюдается увеличение "объектов USER" (счетчик в таск менеджере).
На определенной итерации выдается ошибка (значение счетчика ~10000)
Недостаточно памяти для завершения операции
[40018CE9] Sysutils.RaiseLastOSError + $75
[00504214] Controls.TWinControl.CreateWnd + $130
...
(Т.е. получается что CreateWindowEx возратил 0)
известно что у windows есть ограничение на количество окон для процесса порядка 10000.
Но если я смотрю Ms Spy++, то количество окон в процессе гораздо меньше.
Использую delphi7, win2000 sp4. Утечек памяти (выделенной Memory Menager) нет.
Формы, на которых происходит утечка уничтожаются при закрытии
В связи с этим вопросы
1) Что входит в "объекты USER" - счетчике в таск менеджере помимо окон.
Возможно ли что это утечки не окон, а других win объектов?
2) Если предположить что это утечки окон, то как их обнаружить,
какой инструмент использовать? DestroyWindow уничтожает так же дочернии окна,
как в таком случае может происходить утечка?
Помогите ,пожалуйста, выработать методологию решения данной проблемы.


 
DVM ©   (2006-11-17 17:30) [1]

1) Это VCL окна?
2) Компоненты сторонние используются?
3) DestroyWindow() - зачем же так уничтожать окна?


 
clickmaker ©   (2006-11-17 17:34) [2]

значит, на какой-то CreateWindow нет своего DestroyWindow


 
alexey_potapov ©   (2006-11-17 17:35) [3]

1) Это обычные формы
2) Есть несколько собственных компонентов
3) DestroyWindow использует vcl


 
alexey_potapov ©   (2006-11-17 17:36) [4]

явно CreateWindow нигде не используется, все стандартные компоненты vcl + несколько производных


 
clickmaker ©   (2006-11-17 17:40) [5]

и что имеется в виду под "многочисленном открытии / закрытии окон"? В VCL закрытие формы далеко не тоже самое, что физическое уничтожение окна


 
alexey_potapov ©   (2006-11-17 17:58) [6]

я же написал "формы, на которых происходит утечка уничтожаются при закрытии" - то есть делается наподобе form.Free. В свою очередь все дочерние контролы должны уничтожится. Но какая-то утечка есть (возможно хандлов) есть. Но утечки самих объектов нет, так как это проверяется MemoryManager!


 
Rouse_ ©   (2006-11-17 22:19) [7]

Если Controls.TWinControl.CreateWnd , то значит не везде есть разрушение объектов. Если в твоем коде ты говоришь - нет утечьки, ищи ее в сторонних компонентах, которые используешь...



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
11-1143587172
Fantasy
2006-03-29 03:06
2007.01.14
Служба


9-1141658314
i)lya
2006-03-06 18:18
2007.01.14
HELP


15-1166528745
vidiv
2006-12-19 14:45
2007.01.14
Можно ли научить винду не использовать своп...


2-1167114623
wooow1
2006-12-26 09:30
2007.01.14
string && array of Char


2-1167137665
Numark
2006-12-26 15:54
2007.01.14
Проблема с таймером