Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

"Out Of System Resourses".


AlexanderMS ©   (2006-06-30 19:06:00) 

Ошибка во время выполнения моей программы. :( . Появляется при открытии окна "О программе", и то не всегда, но 2 раза уже заметил. Как с этим бороться?
Если посмотреть на её "аппетит" в Диспетчере задач, то он иногда приближается к отметке 10 МБ, а в основном - около 2500 КБ. Но это вроде бы цветочки, по сравнению с... Delphi!
Я думаю, не потому ли, что все тексты висят в памяти в виде переменных (всего около 1500-2000 символов, мне это необходимо (но не обязательно) для быстрого переключения программы с одного
языка на другой).

В окне Project -> Information следующие данные:

Data Size: 10625 bytes
Initial Stack Sze: 16384 bytes


Desdechado   (2006-07-01 13:38:00) [1]

Есть подозрения, что создаваемые через .Create объекты нигде не уничтожаются. Особенно серьезно это может быть по части форм и объектов GDI, менее серьезно - от всяких массивов и списков.
Почитай книжки по динамическому созданию и уничтожению объектов.
Погоняй MemProof на предмет утечек ресурсов.


koha   (2006-06-30 20:08:00) [2]

Вот про 4кб. - я согласен, тысячу инттежеров не нужно. достаточно одной переменной в ненужном месте и компилятор сам раздует вашу прогу ненужным кодом, если за одной переменной нужно через пару стеков в памяти лазить. Стоит попробывать пару Integer - ов потягать всеми процедурами которые есть и можно увидеть как она дуться будет, а затем убрать их -  прога заметно похудеет.
И это уже проверено неоднократно, но это относится не только Integer, но и к другим переменным тоже.


Ega23   (2006-06-30 19:47:00) [3]


> Но это я про то пытался сказать как может прога 400 кб.
> занять процесс
> аж 3 - 4 мб.
>


А один фиг чушь сказал. Integer - 4 байта. 4Мб - 400Кб ~ 3,5Мб. Это примерно 700.000 переменных типа Integer.


koha   (2006-06-30 19:44:00) [4]

Сорррии не разобрал суть вопроса  "Out of System Resources" ......
Но это я про то пытался сказать как может прога 400 кб. занять процесс
аж 3 - 4 мб.


Ega23   (2006-06-30 19:37:00) [5]


> Может быть у тебя много глобальных переменных типа integer
> - разнеси их по локальным процедурам.


Ты, прежде чем отвечать, сначала задумайся - сколько же должно быть глобальных переменных типа Integer, чтобы вывалилось Out of System Resources?

По сабжу: буквально сегодня такое было. Но это IDE чудил.
Кстати, как ты её запускаешь: из-под отладчика?


Ega23   (2006-06-30 19:37:00) [6]


> DrPass ©   (30.06.06 19:35) [4]


:)


DrPass   (2006-06-30 19:35:00) [7]


> koha   (30.06.06 19:27) [3]

Наверное, учитель информатики тебя молчаливо ненавидит, но ничего не может сделать


koha   (2006-06-30 19:27:00) [8]

Все процедуры и функции хранят в памяти свои переменные вблизи, а если ини используют много глобальных переменных то при каждом вызове процедуры она использует "далекие" переменные для себя, хранящиеся в другом стеке, соответственно процесс может наращивать мегабайты. Лучше переменные хранить "вблизи" своих процедур, чтоб они были в одном стеке.


koha   (2006-06-30 19:16:00) [9]

Может быть у тебя много глобальных переменных типа integer - разнеси их по локальным процедурам.


Джо   (2006-06-30 19:06:00) [10]

Посмотри на кол-во используемых ресурсов GDI.


Наверх

Титульная страница Поиск, карта сайта Написать письмо