Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.04.2023
Сообщений: 81

Оптимизация использования оперативной памяти

25.10.2023, 22:37. Показов 713. Ответов 6

Студворк — интернет-сервис помощи студентам
В моем приложении довольно активно бурлят данные(в рамках настольных ПК). У меня при одних "настройках" без моих попыток в оптимизацию с легкостью улетает семь с половиной гигов оперативки. Ну я понимаю, что это хотелось бы исправить. Для нахождения бутылочных горлышек использовал встроенный профайлер в вске. По какому принципу я использовал:
запускал профилировщик на использование памяти, когда максимально загружалась память делал снимок, шел в этом снимке памяти в Размер кучи, сортировал по Инклюзивный размер и думал, как можно оптимизировать. Какие приемы я использовал: убрал тупо лишние(а по задумке гениальные) трехмерные массивы bool, некоторые вещи переписал с int на byte и ushort. Ну и по логике использование памяти должно было упасть. В итоге, немного переписав код, в профайлере эти цифры действительно упали, но если запускать приложение(я делал через релиз вообще вручную), то окажется что то, что я сделал для оптимизации памяти лишь увеличило её потребление с 7,5 гигов в диспетчере задач до 8,3 гигов. Из за чего это могло случиться?
P.S. если смотреть использование памяти процесса через Средства диагностики то новая версия потребляет вообще 10,2 гига по сравнению со старыми 9,5.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2023, 22:37
Ответы с готовыми решениями:

Загрузка ЦП и оперативной памяти
Добрый день. Я начал делать программу. Которая показывает загрузку ЦП и оперативной памяти. Windows XP. Но так и не смог получить загрузку...

Использование оперативной памяти
Создаю программу подсчета суммы элементов массива. Надо подсчитать врема затраченное и количество оперативной памяти. Можно ли отследит...

Загрузка оперативной памяти
Пишу проект на C# связанный с базами данных. Необходимо мониторить то как сильно приложение грузит оперативную память прямо в окошке...

6
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
25.10.2023, 22:43
Цитата Сообщение от leopeo Посмотреть сообщение
улетает семь с половиной гигов оперативки.
и?? это страшно?? Сейчас другое время. Кому нужна эта оптимизация?
Вот если улетает 256 гигов каждую минуту то это явно где то утечка..
на компах сейчас от 16 гигов и выше.
То что вы замените лонги на шорты нифига в масштабе не изменит.

Вообще постановка бредовая. Что за проект, на какой платформе, какие технологии, какие задачи решает .. 8 гигов. Тоже мне проблема.. )))
0
0 / 0 / 0
Регистрация: 25.04.2023
Сообщений: 81
25.10.2023, 22:57  [ТС]
Worldmaster
Что за проект, на какой платформе, какие технологии, какие задачи решает
это игра, на .NET 7, OpenTK. Тут пока ничего такого нету, но в планах оперативка тут очень понадобится.
Да, я понимаю, что это не утечка памяти, но все таки, каким образом убирая 2 группы массивов по 151 мегабайт каждая у меня возрастает потребление оперативной памяти? Как это работает?
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
25.10.2023, 23:01
Цитата Сообщение от leopeo Посмотреть сообщение
каким образом убирая 2 группы массивов по 151 мегабайт каждая у меня возрастает потребление оперативной памяти? Как это работает?
Да блин.. как вам можно объективно ответить не видя чего вы там вообще творите? может вы там на каждом цикле генерите тонну новых переменных и буферов. Поэтому и растет.
Игра... може UE5 курить?
0
0 / 0 / 0
Регистрация: 25.04.2023
Сообщений: 81
25.10.2023, 23:20  [ТС]
Worldmaster Врядли тут генерятся супер много и супер часто буфферы. Эти удаленные массивы они по факту используются только при запуске приложения, один раз. Если буфферы и создаются, то вроде сборщик мусора должен их почистить
Цитата Сообщение от Worldmaster
как вам можно объективно ответить не видя чего вы там вообще творите?
В данном случае это не один или два метода и я сомневаюсь что мы с вами посидим пару часиков в голосовом чате чтобы я вам объяснил как у меня все работает и в чем дело контрено, я понимаю что тут нет такого ответа, как вот тут вот сделай то и все будет работать. Я хотел узнать о более общих случаях.
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
26.10.2023, 00:12
Цитата Сообщение от leopeo Посмотреть сообщение
Я хотел узнать о более общих случаях.
Большие обьекты (от 88 KB) создаются в Large Object Heap. Даже после удаления сборщиком мусора таких обьектов память оного не дефрагментируется (читай не высвобождается обратно в ОС).
Если приложение OpenTK то оно содержит неуправляемый код, соотвественно - неуправляемую (.NET-ом) память которую не будет видно в дампе VS или будет видно как нетипизированный сегмент.
А вообще вы хотите странного аппелируя к коду и каким то изменениям не показывая самого кода и даже отчетов дампов памяти
0
0 / 0 / 0
Регистрация: 25.04.2023
Сообщений: 81
26.10.2023, 00:30  [ТС]
Что ж, после попыток понять, в чем же причина, как обычно проявили себя беды с башкой и слепота. Я попробовал кое что переделать, все заработало, потребление памяти действительно уменьшилось, но я делал вроде все то же, что и раньше, однако я не понимал что я такого сделал. В итоге, после сравнения действительно оптимизированной версии с деоптимизированной я просто в одном месте не поставил not. Одним словом это наверное не заслуживает дальнейших осуждений...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2023, 00:30
Помогаю со студенческими работами здесь

Увеличение используемой оперативной памяти
Доброго времени суток. На C# была написана простая однокнопочная диалоговая форма. При использовании программа постоянно увеличивает...

Очистка оперативной памяти в Windows 7
Добрый день) Как можно очистить ( дефрагментировать ) оперативную память (RAM) в Windows 7? С помощью c# P.S: Не в приложение... А в...

Высвобождение кешированной оперативной памяти
Всем привет. Можно ли как то высвободить кешированную оперативную память системы средствами С# ?

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

Выделение большого количества оперативной памяти
Я уже год разрабатываю свою игру на C# и только спустя это время, когда программа уже имеет довольно большой объём, я столкнулся с...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru