|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.04.2009, 23:47 | #1 | |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Массив TBitmap, "Недостаточно памяти для обработки команды"
У меня в программе заполняется массив из TBitMap размером 1226х1742
Когда их набирается штук 30, выводится такое сообщение: Цитата:
Хотя по памяти программа не больше 20 метров. Правда файл подкачки раздувается на 300 метров больше чем обычно. А надо чтоб работало. Можно обойтись без сохранения на диск временных файлов? Последний раз редактировалось Роман Радер; 01.04.2009 в 23:54. |
|
02.04.2009, 00:03 | #2 | |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
Их обязательно нужно столько хранить? Кстати, размер какой-то странный... P.S. Сделал проэкт заполняющий (в цикле) "массив из TBitMap размером 1226х1742" - выдаёт то же самое на создании 324-й штуки... А в "Диспетчере задач" говорит, что прога ест 2 031 052 КБ памяти.....
I am the First of Cyber Evolution...
I am the First to Program your Future... Последний раз редактировалось DomiNick; 02.04.2009 в 00:28. |
|
02.04.2009, 17:31 | #3 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Похоже у тебя действительно заканчивается память. Отсюда и ошибка. Попробовал у себя, все нормально, дошел до сорока штук (сделал по нажатию кнопки), дальше не стал, памяти программа при этом стала жрать 250 мб, с каждым битмапом прирост ~6.2 мб. Естественно наступит момент когда память закончится, у меня виртуальной 2 гб, т.е. еще штук 150 можно создать.
Может как-то можно оптимизировать алгоритм и лишние освобождать? Вернее все-таки нужно, а то это не дело Ну и всегда можно увеличить файл подкачки. P/S Попробовал по таймеру, раз в секунду, также все нормально, до 150 штук программа все еще работала, расход памяти перевалил за гигабайт, дальше я выключил, что интересно где-то после 35-й штуки и дальше при создании каждого последующего, система начала перераспределять память отбирая ее у других программ (физической памяти в системе 512 мб).
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 02.04.2009 в 17:49. |
04.04.2009, 14:40 | #4 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Мда, интересно.
Наверное, придется для хранения использовать TJpegImage с компрессией 100 Хранить надо ВСЕ. |
04.04.2009, 15:41 | #5 |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Может их во временную папку сохранять..? А при закрытии очищать всё...
I am the First of Cyber Evolution...
I am the First to Program your Future... |
05.04.2009, 18:14 | #6 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Хранить такие объемы в памяти нерационально.Лучше держать в файле, при необходимости считывать, обрабатывать и опять записывать в файл.В таком случае могут быть только потери в быстродействии и то не думаю ощутимые.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body | tabikA | HTML и CSS | 5 | 24.02.2009 21:50 |
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах | mihali4 | Свободное общение | 1 | 17.01.2009 01:43 |
Thread creation error - Недостаточно памяти | RealSwift | Общие вопросы Delphi | 1 | 06.07.2008 12:27 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) | Dorvir | Microsoft Office Excel | 2 | 28.03.2008 10:03 |