Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 3
Регистрация: 08.01.2018
Сообщений: 25
1
.NET 4.x

Приложение WPF потребляет слишком много ОЗУ

02.09.2018, 21:48. Показов 1346. Ответов 3

Author24 — интернет-сервис помощи студентам
У меня есть класс наследник от Label(wpf). На Background объекта я ставлю изображение(png) из ресурсов проекта. Однако 1 такой контрол потребляет ~20МБ ОЗУ. Если 10 таких объектов поместить на пустую форму то программа будет потреблять около 200МБ ОЗУ. Это очень много. Кто знает в чем проблема и как ее решить. Картинку добавляю так:
C#
1
2
3
4
5
6
7
 string path = $"Resources/{image_name}.png";
 Uri resourceUri = new Uri(path, UriKind.Relative);
 StreamResourceInfo stream_info = Application.GetResourceStream(resourceUri);
 BitmapFrame temp = BitmapFrame.Create(stream_info.Stream);
 ImageBrush brush = new ImageBrush();
 brush.ImageSource = temp;
 mylabel.Background = brush;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2018, 21:48
Ответы с готовыми решениями:

Много ли ресурсов потребляет wpf интерфейс без свистелок
Сколько видел серверов, все представлены консольными приложениями, почему? Разве простенький...

Приложение потребляет, неоправданно много памяти (600 - 700 Мб)
Здравствуйте! Есть задача - показать список, каждый элемент которого - набор небольших таблиц...

Приложение потребляет много памяти
Привет всем. Возникла такая проблема, при загрузке изображений из папки, приложение начинает есть...

Программа потребляет слишком много ресурсов
Здравствуйте. Имеется такой код: #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT,...

3
2 / 1 / 1
Регистрация: 27.10.2015
Сообщений: 35
15.09.2018, 18:35 2
Лучший ответ Сообщение было отмечено B_im как решение

Решение

может сама картинка много весит?
1
0 / 0 / 3
Регистрация: 08.01.2018
Сообщений: 25
08.10.2022, 23:32  [ТС] 3
Проблема была в том что картинка много весила и создавалась на каждый объект заново.
Паттерн "Легковес" решает проблему.
0
Модератор
Эксперт .NET
15468 / 10713 / 2787
Регистрация: 21.04.2018
Сообщений: 31,539
Записей в блоге: 2
09.10.2022, 10:04 4
Цитата Сообщение от B_im Посмотреть сообщение
Картинку добавляю так:
Если это картинка по умолчанию, то ImageBrush brush надо создавать в статическом конструкторе, заморозить и запомнить в статическом поле "только для чтения".
В экземплярах контрола потом просто передавать ссылку из этого поля.

Так же смущает размер 20 мб.
Это размер картинки такой?
Для ImageBrush в большинстве случаев такой размер будет избыточен.
Попробуйте уменьшить размер картинки (разрешение) и посмотрите как это влияет на качество отображения в элементе в рантайм.
1
09.10.2022, 10:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2022, 10:04
Помогаю со студенческими работами здесь

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

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

Зарезервированно слишком много озу под железо
Здравствуйте, помогите пожалуйста. Имею ноутбук самсунг np270e5e x05ru, на борту 8 гб оперативы,...

слишком много аргументов в вызове функции или как создать много файлов на рабочем столе
Мне нужно создать на рабочем столе очень много файлов вот команда для создания 1 файла wchar_t...

Клиент VK потребляет много памяти
Доброго времени суток! Введу того, что недавно было удалено официальное приложенице "Vk" для Ipad,...

Программа потребляет много ресурсов
Вобщем делаю программу, которая помимо всего прочего имеет в наличии модуль с векторной картой. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru