Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 14.11.2011
Сообщений: 49

Слишком много памяти для простого проекта

28.07.2012, 23:13. Показов 5967. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!

Подскажите, пожалуйста! Такой вот случай: программа по коду большая (более 4440 строк), но использует всего две библиотеки - vcl и fstream. В ней много элементов-картинок (около 220 штук, но по дисковому пространству они занимают всего около 5 Мб). Все действия происходят на одной-единственной форме. Так вот... При старте и в процессе работы программа потребляет 50604 килобайта оперативной памяти! Грешу на то, что сделана всего одна форма. Но это необходимо: форма тоже необычная, нарисованная, и все действия должны происходить именно на ней. Среда: Embarcadero C++ Builder XE2. Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2012, 23:13
Ответы с готовыми решениями:

Запускается слишком много окон CMD
Никак не могу понять почему запускается огромная туча окон CMD if (i == Memo2->Lines->Count) { //...

Определено слишком много полей (но поля всего 5)
Всем привет. Пишу программку для сведения итогов, преобразование XML в EXCEL. Программа замечательно работат, но только некоторое время,...

После компиляции проекта exe файл весит 14 755 кб. Это слишком много для программы с 3 функциями
Меня смущает, что после компиляции проекта exe файл весит 14 755 кб. Это слишком много для программы с 3 функциями. Как можно уменьшить вес...

39
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 21:15
Студворк — интернет-сервис помощи студентам
Про *.dll не понял. Чтоб очистить картинки (и освободить память) - Image ->Picture = NULL ;
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.07.2012, 21:16
Чтоб очистить картинки (и освободить память) -
C++
1
Image ->Picture = NULL ;
Так а delete ?
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
30.07.2012, 22:05
у меня почему то неработает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include "PngImage.hpp"
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HANDLE h = LoadLibrary(L"Core.dll");
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TResourceStream *mmm = new TResourceStream(0,"PNG1","IMAGE");
    TPNGObject *pic1 = new TPNGObject();
    pic1->LoadFromStream(mmm);
    Image1->Picture->Bitmap->Assign(pic1);
    delete pic1;
    mmm = new TResourceStream(0,"PNG2","IMAGE");
    TPNGObject *pic2 = new TPNGObject();
    pic2->LoadFromStream(mmm);
    Image2->Picture->Bitmap->Assign(pic2);
    delete pic2;
    delete mmm;
}
//---------------------------------------------------------------------------
и 2 ошибки
C++
1
2
[BCC32 Error] Unit1.cpp(21): E2285 Could not find a match for 'TResourceStream::TResourceStream(int,const char *,const char *)'
[BCC32 Error] Unit1.cpp(26): E2285 Could not find a match for 'TResourceStream::TResourceStream(int,const char *,const char *)'
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 22:16
TResourceStream переопределено в pngimage.pas; видимо мы используем разные версии этого компонента (ver.1.564 (31 July 2006))
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
30.07.2012, 22:21
Цитата Сообщение от nick42 Посмотреть сообщение
TResourceStream переопределено в pngimage.pas; видимо мы используем разные версии этого компонента (ver.1.564 (31 July 2006))
Я работаю в XE2 Up 4. И где взять этот компонент?, я не подкючал вроде его.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 22:27
Тогда в поток из ресурсов запускай, как определено в системе (там только два параметра, если не ошибаюсь).
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
30.07.2012, 22:29
Цитата Сообщение от nick42 Посмотреть сообщение
Тогда в поток из ресурсов запускай, как определено в системе (там только два параметра, если не ошибаюсь).
Я ничего непонел
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 22:36
Если включены подсказки в редакторе, то после набора строки TResourceStream( и небольшой паузы должна появиться подсказка об ожидаемом формате для параметров. Кажется, в стандартном TResourceStream всего два чарта, - без int в начале. Я это хотел сказать. Выдаваемые две ошибки - это ведь от несовместимости форматов TResourceStream.
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
30.07.2012, 22:40
nick42,
Миниатюры
Слишком много памяти для простого проекта  
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 22:44
- тогда может быть поможет добавление L перед кавычками ( ..Stream(0,L"PNG1",L"IMAGE"); )
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
30.07.2012, 22:46
nick42, Я жестоко тупонул.
При нажатии на кнопку пишет
Resource PNG1 not found.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 22:50
Что ж.. - кнопке стоит верить. Ресурсы должны выглядеть вот так приблизительно (в оттранслированной программе)__
Миниатюры
Слишком много памяти для простого проекта  
0
1 / 1 / 0
Регистрация: 14.11.2011
Сообщений: 49
30.07.2012, 23:06  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
Чтоб очистить картинки (и освободить память) - Image ->Picture = NULL ;
Спасибо большое!)

Avazart, Вам тоже)

Я выгрузил библиотеку при помощи функции FreeLibrary((HMODULE)hLib); А с картинками сам бы не додумался
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
30.07.2012, 23:24
nick42, Тогда такой вопрос в какой ресурс нужно кидать эти кортинки?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 23:28
Без понятия. Пишите хоть так: PNG1 RCDATA "filename". Потом при извлечении можно указывать TResourceStream(0,L"PNG1",RT_RCDATA) <пишу по памяти, без проверки>
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
30.07.2012, 23:35
Цитата Сообщение от nick42 Посмотреть сообщение
Пишите хоть так: PNG1 RCDATA "filename".
А куда это писать?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2012, 23:45
Цитата Сообщение от ivan.-94 Посмотреть сообщение
А куда это писать?
Создайте текстовый файл name.rc в любом текстовом редакторе; запишите там строки:
PNG1 RCDATA "filename1.png"
PNG2 RCDATA "filename2.png"
. . .
и подключите этот файл к проекту (Project-Add to Project).
1
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
31.07.2012, 00:12
nick42, Зделал как вы и сказали, но то же самое и осталось.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
31.07.2012, 09:11
стало быть планида у вас такая...
0
Я Фоюмчанин ? дааааа)
 Аватар для ivan.-94
213 / 204 / 23
Регистрация: 02.06.2012
Сообщений: 1,424
Записей в блоге: 12
31.07.2012, 11:18
nick42, Как говориться "Утро вечера мудренее". Я так тупил вчера.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2012, 11:18

Realm занимает слишком много памяти
Доброй ночи. Есть приложение, к которому подключена БД realm. Мне нужно хранить в ней изображения, которые выбираются из галерии, либо...

Svchost.exe потребляет слишком много памяти
Пожалуйста подскажите как можно уменьшить потребление памяти svchost.exe И обьясните мне неопытному пользователю , что именно делает...

Windows жрет слишком много оперативной памяти
Здравствуйте! Появилась проблема с оперативкой. Имею 4гб ОЗУ, в последнее время комп начал сильно тормозить даже в простое. Решил проверить...

Просмотр изображений потребляет слишком много памяти
Привет Сделал программу для просмотра изображений. Использовал готовый удалена ссылка на сторонний форум ... Всё это делается в...

Слишком много памяти в ОЖИДАНИИ. Как узнать, чем она занята?
скриншот:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru