Используется много виртуальной памяти

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Вадим
новенький
Сообщения: 24
Зарегистрирован: 15.04.2007 12:12:26
Откуда: город-герой Волгоград

Используется много виртуальной памяти

Сообщение Вадим »

Написал консольное приложение под Linux используя FPC 2.2.2 и Lazarus 0.9.26.3 - бинарник получился почти на 3 мегабайта.
После запуска, программа занимает 4 Мб оперативной памяти и более 100 Мб виртуальной.
Почему так много виртуальной памяти сожралось?
Заметил, что применение в программе дополнительного TSQLQuery (MySQL) существенно увеличивает расход виртуальной памяти (примерно на 50 Мб). Выборки из таблиц возвращают не более десятка строк.

Аналогичная программа ранее была написана на Delphi, которая под Windows расходовала не более 10 Мб виртуальной памяти.
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Вадим писал(а):Почему так много виртуальной памяти сожралось?

вам виднее. посмотрите какие обьекты в памяти вы держите. хорошо может кушать память TStringList например.

попробуй делать паузу между действиями и смотреть что увеличивает память

типа что-то

Код: Выделить всё

db := TmyDB.create;
{$ifdef DEBUG}
debugln('TmyDB.create');
sleep(15000);
{$endif}

и так на каждое действие.
как отловишь кто кушает или избавляйся или бей тревогу. сюда или в трекер.
Вадим
новенький
Сообщения: 24
Зарегистрирован: 15.04.2007 12:12:26
Откуда: город-герой Волгоград

Сообщение Вадим »

Спасибо, а еще лучше по окончании задержки сразу в лог записывать значение "съеденной" виртуальной памяти.
Ответить