|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.01.2008, 09:20 | #1 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Оперативная память (Делфя)
Создаю проект, запускаю, в памяти занято 2 метра, сворачивая прогу, получаю 600 кг. Вопрос: от чего это и как освободить память без сворачивания, ведь когда разворачиваю память остается попрежнему 600 кг?
|
19.01.2008, 09:59 | #2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
Ну для начала не обязательно все формы создавать при запуске, создавай их по надобности
Выкинуть все не используемые модули из uses (по факту их оказывается не мало) Дальше оптимизация, а это уже все индивидуально
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
19.01.2008, 17:41 | #3 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Ну это само собой, вопрос не в этом, вчитайтесь. Память освобождается при простом сворачивание формы!!! Разворачиваем и получаем МАКСИМУМ 1 метр забитой памяти в место 2 (лично у меня). Это не поясняют модули и прочие, это не относится к стилю (проверьте у себя создав новый без всего проект с одной формой). Вопрос состоял не в том откуда 2 метра при старте, а почему становится метр после сворачивания-разворачивания?
|
19.01.2008, 18:02 | #4 |
Участник клуба Подтвердите свой е-майл
Регистрация: 14.12.2007
Сообщений: 1,434
|
форма прорисовывается вот и все, жрет память своим Paint`ом, и можете хоть все модули отключить, непоможет.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
|
19.01.2008, 18:04 | #5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
хм... никогда не обращал внимания на это. Теперь плюс один к вопросу: почему?
|
19.01.2008, 18:05 | #6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
это что-то в VCL видимо. попробуйте просто проект новый с одной формой создать и запустить
|
19.01.2008, 18:13 | #7 |
Участник клуба Подтвердите свой е-майл
Регистрация: 14.12.2007
Сообщений: 1,434
|
Тю, вопрос неправильно понял! И правда сверну приложение = 552Кб разверну 1300кб , а изначально 3300 кб. Что за диво, может изначально при загрузке приложение резервирует стандартное кол-во 3000-4000 кб.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
|
19.01.2008, 20:11 | #8 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
На примере TList.
Есть два свойства - Count и Capacity. Второе всегда больше первого (хранит массив указателей). Если они сравнялись (добавили строку), происходит увеличение Capacity, но не на 1, а по-сложному: - если Count<5 - добавляется 4; - ... - если Count>7 - добавляется 16; А вот если вы укажете явно (что мало кто делает) Capacity не менее, чем Count, а, скажем, на единичку больше, то сэкономите память... Это только по одному классу, а сколько их у вас? И не только это... |
19.01.2008, 21:07 | #9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
да не. просто новый проект создаешь. одна форма. никаких компонент на ней. никаких списков и т.п. и такая хрень с памятью при сворачивании. или диспетчер чавойто тупит и не то показывает или...
|
20.01.2008, 12:07 | #10 |
Форумчанин
Регистрация: 01.12.2007
Сообщений: 346
|
Ну тк перед запуском программы делаем Application.Minimize, Application.Restore вот и оптимизировали программу, только если на форме есть компоненты она все равно возьмет свое. Дело скорее всего действительно в резервации памяти или просто при сворачивании часть ресурсов уходят в файл подкачки (виртуальную память) и пока нужный компонент не будет нужен он от туда не вылезет (из файла подкачки в память). Ведь например если играть в какую нибудь игру можно заметить например 100 мб занятого места в памяти, после если свернуть, убавиться порядка 20%, а если использовать компьютер при свернутом приложении в данном примере игра она и вовсе в памяти будет занимать 10 мб, вот только при разворачивании прийдеться подождать пока она вновь вольется в память. В результате через некоторое время она будет занимать те же 100 мб. Программы написанные на Delphi далеко не нуждаются в такой же быстрой памяти как игры по этому при разворачивании восстанавливается лишь часть необходимой на данный момент памяти.
Win 10 x64 | VS 2015 | MSSQL 2014
autovestitv.ru |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оперативная память | 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 |