Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2008, 09:20   #1
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию Оперативная память (Делфя)

Создаю проект, запускаю, в памяти занято 2 метра, сворачивая прогу, получаю 600 кг. Вопрос: от чего это и как освободить память без сворачивания, ведь когда разворачиваю память остается попрежнему 600 кг?
Simply-Art вне форума Ответить с цитированием
Старый 19.01.2008, 09:59   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ну для начала не обязательно все формы создавать при запуске, создавай их по надобности
Выкинуть все не используемые модули из uses (по факту их оказывается не мало)
Дальше оптимизация, а это уже все индивидуально
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.01.2008, 17:41   #3
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
Восклицание

Ну это само собой, вопрос не в этом, вчитайтесь. Память освобождается при простом сворачивание формы!!! Разворачиваем и получаем МАКСИМУМ 1 метр забитой памяти в место 2 (лично у меня). Это не поясняют модули и прочие, это не относится к стилю (проверьте у себя создав новый без всего проект с одной формой). Вопрос
Цитата:
Сообщение от Simply-Art Посмотреть сообщение
от чего это и как освободить память без сворачивания
состоял не в том откуда 2 метра при старте, а почему становится метр после сворачивания-разворачивания?
Simply-Art вне форума Ответить с цитированием
Старый 19.01.2008, 18:02   #4
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

форма прорисовывается вот и все, жрет память своим Paint`ом, и можете хоть все модули отключить, непоможет.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 19.01.2008, 18:04   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

хм... никогда не обращал внимания на это. Теперь плюс один к вопросу: почему?
pu4koff вне форума Ответить с цитированием
Старый 19.01.2008, 18:05   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

это что-то в VCL видимо. попробуйте просто проект новый с одной формой создать и запустить
pu4koff вне форума Ответить с цитированием
Старый 19.01.2008, 18:13   #7
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Тю, вопрос неправильно понял! И правда сверну приложение = 552Кб разверну 1300кб , а изначально 3300 кб. Что за диво, может изначально при загрузке приложение резервирует стандартное кол-во 3000-4000 кб.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 19.01.2008, 20:11   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

На примере TList.
Есть два свойства - Count и Capacity.
Второе всегда больше первого (хранит массив указателей).
Если они сравнялись (добавили строку), происходит увеличение Capacity, но не на 1, а по-сложному:
- если Count<5 - добавляется 4;
- ...
- если Count>7 - добавляется 16;
А вот если вы укажете явно (что мало кто делает) Capacity не менее, чем Count, а, скажем, на единичку больше, то сэкономите память...
Это только по одному классу, а сколько их у вас?
И не только это...
mihali4 вне форума Ответить с цитированием
Старый 19.01.2008, 21:07   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

да не. просто новый проект создаешь. одна форма. никаких компонент на ней. никаких списков и т.п. и такая хрень с памятью при сворачивании. или диспетчер чавойто тупит и не то показывает или...
pu4koff вне форума Ответить с цитированием
Старый 20.01.2008, 12:07   #10
Veiron
Форумчанин
 
Аватар для Veiron
 
Регистрация: 01.12.2007
Сообщений: 346
По умолчанию

Ну тк перед запуском программы делаем Application.Minimize, Application.Restore вот и оптимизировали программу, только если на форме есть компоненты она все равно возьмет свое. Дело скорее всего действительно в резервации памяти или просто при сворачивании часть ресурсов уходят в файл подкачки (виртуальную память) и пока нужный компонент не будет нужен он от туда не вылезет (из файла подкачки в память). Ведь например если играть в какую нибудь игру можно заметить например 100 мб занятого места в памяти, после если свернуть, убавиться порядка 20%, а если использовать компьютер при свернутом приложении в данном примере игра она и вовсе в памяти будет занимать 10 мб, вот только при разворачивании прийдеться подождать пока она вновь вольется в память. В результате через некоторое время она будет занимать те же 100 мб. Программы написанные на Delphi далеко не нуждаются в такой же быстрой памяти как игры по этому при разворачивании восстанавливается лишь часть необходимой на данный момент памяти.
Win 10 x64 | VS 2015 | MSSQL 2014
autovestitv.ru
Veiron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оперативная память ogurchik Компьютерное железо 12 12.12.2008 15:42
Оперативная память ogurchik Компьютерное железо 1 02.09.2008 19:39
не работает Делфя Алёна Софт 6 01.03.2008 23:07
Динамическая память MadDog__ Помощь студентам 2 22.11.2007 00:05
Память процессов Carbon Безопасность, Шифрование 2 05.05.2007 23:59