Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 7
1
.NET 4.x

Приложение потребляет много памяти

24.11.2017, 10:27. Просмотров 1342. Ответов 7
Метки нет (Все метки)

Привет всем. Возникла такая проблема, при загрузке изображений из папки, приложение начинает есть много памяти (700 мб О_О ).
Не помогает
C#
1
GC.Collect();
Сам код:
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
void LoadImg()
        {
            DirectoryInfo dir = new DirectoryInfo(ConfigPath);
            foreach (FileInfo file in dir.EnumerateFiles("*.png"))
            {
                StackPanel stack = new StackPanel();
                Image img = new Image
                {
                    Source = new BitmapImage(new Uri(file.FullName)),
                    Stretch = Stretch.UniformToFill,
                    Height = 88,
                    Width = 134
                };
                Label names = new Label
                {
                    Content = file.Name,
                    Width = 138,
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment = VerticalAlignment.Center,
                    HorizontalContentAlignment = HorizontalAlignment.Center,
                    VerticalContentAlignment = VerticalAlignment.Center
                };
                
                stack.Children.Add(img);
                stack.Children.Add(names);
                stack.HorizontalAlignment = HorizontalAlignment.Center;
                stack.VerticalAlignment = VerticalAlignment.Center;
                stack.Margin = new Thickness(10);
                wPanel.Children.Add(stack);
            }
        }
В папке изображений больше 50 штук. Как можно снизить размер потребляемой памяти при загрузке изображений?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2017, 10:27
Ответы с готовыми решениями:

Программа потребляет за 1гб физической памяти
Где могут быть ошибки в коде программы ? Она работает с небольшими текстами.

Потребляет ли массив определённой длины больше памяти, чем такое же кол-во переменных
Здравствуйте. Отличается ли массив int'от из, к примеру, 5 элементов от 5 переменных типа int по...

Определить список объектов, созданных приложением и сколько памяти потребляет каждый объект
Всем привет! Кто знает как можно проанализировать своё приложение? Например: список объектов,...

Убить процесс, если тот потребляет количество оперативной памяти больше установленного значения
Здравствуйте. Собственно, весь вопрос в заголовке. Как это реализовать? Заранее спасибо.

7
Эксперт .NET
7313 / 5072 / 870
Регистрация: 21.01.2016
Сообщений: 19,422
24.11.2017, 10:32 2
Marrero, попробуйте не загружать изображения. Если они нужны, то удивляться тому, что под них отводится память, не стоит.
0
Заблокирован
24.11.2017, 10:36 3
Цитата Сообщение от Marrero Посмотреть сообщение
В папке изображений больше 50 штук
а про их размер почему не упомянули?
Если каждый за 10Мб, то стоит ли удивляться?
0
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 7
24.11.2017, 10:42  [ТС] 4
Так вот суть в приложении в том и есть, чтобы сделать предосмотр изображений в определенной директории.

Добавлено через 1 минуту
Цитата Сообщение от Остап Бонд Посмотреть сообщение
а про их размер почему не упомянули?
Если каждый за 10Мб, то стоит ли удивляться?
Изображения не больше 2-х мб.
0
Заблокирован
24.11.2017, 10:54 5
Это https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx не помогает?
1
2 / 2 / 4
Регистрация: 20.01.2016
Сообщений: 47
24.11.2017, 10:56 6
Лучший ответ Сообщение было отмечено Marrero как решение

Решение

попробуй загружать каждую картинку и изменять разрешение, для того что бы они весили значительно меньше, предпросмотр же не обязует картинку с максимальным разрешением ставить
1
Эксперт .NET
7313 / 5072 / 870
Регистрация: 21.01.2016
Сообщений: 19,422
24.11.2017, 11:01 7
Лучший ответ Сообщение было отмечено Marrero как решение

Решение

Цитата Сообщение от Marrero Посмотреть сообщение
Изображения не больше 2-х мб.
Это не значит, что они столько будут в памяти занимать. Если что, то всякие JPG, PNG, GIF - сжатые изображения. При загрузке они "распаковываются" в оригинальные, занимающие существенно больше.

Выше вам верно посоветовали: загружайте изображение, уменьшайте и используйте, а оригинальное выкидывайте, чтобы память не занимало.
1
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 7
24.11.2017, 11:09  [ТС] 8
Понял, всем спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2017, 11:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программы на C# потребляют непростительно много оперативной памяти
Я просто опишу проблему а вы мне подскажите если не сложно, или даже может кто-то скинет мне ICQ...

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

DataGridView потребляет много памяти
Обновляю содержимое 20х40 ячеек DataGridView, с каждым обновлением программа потребляет на 2 мб...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.