Форум: "Основная";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Вниз"Недостаточно памяти для завершения операции" Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c