Ест слишком много оперативной памяти
Модератор: Модераторы
Было замечено, что проекты едят много памяти. Думал, дело в кривом коде. Скомпилировал одну форму - запускаю, смотрю в диспетчере задач (встроенный в ХР) - 9 Мб.
Это исправимо?
Как отслеживать правильное использование памяти? Потому что, казалось бы на нышешних машинах и обьемах памяти это не существенно, а на самом деле весьма критично, потому что за день работы сьедает столько памяти, что оси перестает хватать.
Вопрос собственно - уменьшение обьема поедаемой памяти.
Ось - windows 9x, windows XP, windows 2k.
Lazarus - 0.9.12
Это исправимо?
Как отслеживать правильное использование памяти? Потому что, казалось бы на нышешних машинах и обьемах памяти это не существенно, а на самом деле весьма критично, потому что за день работы сьедает столько памяти, что оси перестает хватать.
Вопрос собственно - уменьшение обьема поедаемой памяти.
Ось - windows 9x, windows XP, windows 2k.
Lazarus - 0.9.12
STAKANOV писал(а): Попробуй размер кучи уменьшить.
Знал бы я еще что такое "куча" и как это уменьшить её размер
Сейчас поковырялся в настройках, нашел - "параметры компилятора для проекта" "размер кучи -ch", по умолчанию 0.
Сразу поставил 1. Попытался скомпилировать - выругало.
Полез в Wiki, прочитал, что размер кучи должен варьироваться от 1024 до 67107840. Поставил 1024, скомпилировал, затаив дыхание запустил, посмотрел пожираемую память - все те же 9 Мб
Решил поставить 1048576, для выяснения, как это отразиться на размере поглощаемой памяти. Выставил, скомпилировал, запускаю - те же 9 Мб.
Читаю Wiki дальше, прочитал про некий HeapTrc, вроде подходит. Вставляю в код, ставлю -gh, компилирую. Запускаю - интересно, но не понятно
Как итог - чтение Wiki ни к чему не привело, кучу уменьшил на минимум, размер используемой памяти не изменился. Возможно не там уменьшил размер кучи?
Нет, это я был не прав <_<
Боюсь, что для Lazarus уменьшить не удасться. Если критичен именно размер, то в Windows лучше использовать WinAPI. У меня программа так тот же объем занимает... правда при этом держит в памяти англо-русский словарь на более чем 46000 словарных статей (это он на самом деле память занимает).
Если нужна кроссплатформенность или просто хочется компонеты на форму кидать, то рекомендую MSEide+MSEgui - оно менее требовательно к ресурсам, думаю раза в 3.
Боюсь, что для Lazarus уменьшить не удасться. Если критичен именно размер, то в Windows лучше использовать WinAPI. У меня программа так тот же объем занимает... правда при этом держит в памяти англо-русский словарь на более чем 46000 словарных статей (это он на самом деле память занимает).
Если нужна кроссплатформенность или просто хочется компонеты на форму кидать, то рекомендую MSEide+MSEgui - оно менее требовательно к ресурсам, думаю раза в 3.
-
userok
-
userok
STAKANOV писал(а):Боюсь, что для Lazarus уменьшить не удасться. Если критичен
...
Если нужна кроссплатформенность или просто хочется компонеты на форму кидать, то рекомендую MSEide+MSEgui - оно менее требовательно к ресурсам, думаю раза в 3.
Даже удивительно, что Lazarus дает такие громадные проекты и по размеру, и по памяти - и это используя внешние ( !!! ) GUI-тулкиты. Наверное, из-за реимплеметации Win32-api под все платформы и широко-профильности компонентов ( из-за чего смартлинк не очень эффективен ). Интересно тогда, почему бы не использовать вызовы к WINE (типа галочки "Wine" рядом с Qt, GtkX,... ) ?
-
Илья Аввакумов
- новенький
- Сообщения: 50
- Зарегистрирован: 04.05.2005 15:06:42
- Откуда: Екатеринбург
noch писал(а): у 98-го серьезные проблемы с управлением памяти, под него самый лучший код стабильно работать не будет.
Дело в том, что 9 мб - у простой формы - это под ХР.
Боюсь, что для Lazarus уменьшить не удасться. Если критичен именно размер, то в Windows лучше использовать WinAPI
Если нужна кроссплатформенность или просто хочется компонеты на форму кидать, то рекомендую MSEide+MSEgui - оно менее требовательно к ресурсам, думаю раза в 3.
То есть практически переписать код? Если выбор стоит между переписать и оставить нагрузку на ОЗУ, то я оставлю нагрузку. На данный момент переписывать для меня неприемлимо
-
badaninslava
- постоялец
- Сообщения: 101
- Зарегистрирован: 12.12.2005 00:21:44
Было замечено, что проекты едят много памяти. Думал, дело в кривом коде. Скомпилировал одну форму - запускаю, смотрю в диспетчере задач (встроенный в ХР) - 9 Мб.
А я провел маленький эксперемент, проект состоящий из только из пустой формы 9 метров. Проект то же из одной формы с десятком контролов на ней и два потока которые эти контролы заполняют (стройется маршрут до задонного узла, использую синапс), всего 5.5 метра, пробовал под XP и 2003 сервером. Хм странно как то...
-
userok
Илья Аввакумов писал(а):userok писал(а):очень рекомендую PowerBasic & PowerBasicForms.
Это имеет какоето отношение к Basic?
Синтаксис - от Бэйсика (не Visual, а стандартный Basic ). Но со множеством GUI-расширений, поддержкой динамических массивов, создание DLL, доступ и создание COM-объектов, IDE для рисования форм, сетевой библиотекой, поддержкой баз данных, связи через последовательный порт... API вызывает прямо из кода. Генерирует сразу практически Ассемблерный код - меньше просто некуда. Планируется версия под Линукс.
