Написал консольное приложение под 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
- Контактная информация:
Вадим писал(а):Почему так много виртуальной памяти сожралось?
вам виднее. посмотрите какие обьекты в памяти вы держите. хорошо может кушать память TStringList например.
попробуй делать паузу между действиями и смотреть что увеличивает память
типа что-то
Код: Выделить всё
db := TmyDB.create;
{$ifdef DEBUG}
debugln('TmyDB.create');
sleep(15000);
{$endif}
и так на каждое действие.
как отловишь кто кушает или избавляйся или бей тревогу. сюда или в трекер.
Спасибо, а еще лучше по окончании задержки сразу в лог записывать значение "съеденной" виртуальной памяти.
