170 похожих чатов

Вечер. Ткните самоучке - есть код, хочу понять где он

так задрачивает память. Профилирование в студии по памяти помощи не дало... Так как не понятно что в этих объктах и почему они столько весят. Что на эту тему почитать есть?..

32 ответов

8 просмотров

https://docs.microsoft.com/ru-ru/dotnet/standard/garbage-collection/fundamentals почитайте про поколения сборки мусора, про кучу больших объектов. У вас в коде лишние аллокации памяти (выделения), возможно, лишние копирования или забытые жирные объекты. Рекомендовал бы смотреть в сторону dotMemory

попробуй dotmemory, там наглядней

Warstone- Автор вопроса
Владислав
https://docs.microsoft.com/ru-ru/dotnet/standard/g...

Ну код не течет. Так что меня больше интересует как найти что аллоцируется и оптимизировать (вернее найти что можно оптимизировать или доказать что текущее - нормально)

Еще это почитай https://habr.com/ru/company/otus/blog/536942/

Warstone- Автор вопроса
Alex
Еще это почитай https://habr.com/ru/company/otus/b...

У меня нету утечек сейчас. Мне количество аллокаций смущает.

Warstone
Ну код не течет. Так что меня больше интересует ка...

Надо делать снепшоты памяти и сравнивать. Можно прямо через диспетчер задач снимать их и заталкивать в дотмемори. Можно dotTrace профилировать, тоже снепшоты можно делать там

Alex
используй структуры по возможности

Их в асинхронный код особо не позаталкиваешь и на любой чих копировать такое себе

Phantom
Хуевый совет

чем же? если человека интересуют именно частые аллокации

Alex
чем же? если человека интересуют именно частые алл...

Если использовать там где не надо, то будет дохуя копирования, может и боксинг

Phantom
Асинхронный код тут чем мешает?

Ну асинки в ref не умеет, а большие структуры, которые на классах текут - самостоятельно копировать?

Phantom
Если использовать там где не надо, то будет дохуя ...

Так это и понятно, я же не советовал все на структуры поменять

Владислав
Ну асинки в ref не умеет, а большие структуры, кот...

А зачем большие структуры вообще делать?

Warstone- Автор вопроса
Alex
используй структуры по возможности

Где можно - использую и unsafe - тоже. Но без фанатизма.

Phantom
А зачем большие структуры вообще делать?

Я ответил, чем мешает асинхронный код структурам. Зачем большие, это к топикстартеру

Warstone- Автор вопроса
Warstone
Где можно - использую и unsafe - тоже. Но без фана...

попробуй еще тут почитать https://blog.maartenballiauw.be/post/2016/10/19/making-net-code-less-allocatey-garbage-collector.html

Warstone
Где?

Ну как минимум, в unsafe

Warstone- Автор вопроса
Phantom
Ну как минимум, в unsafe

Как минимум - нет. Было 10Гб и 2 минуты на старт, сейчас 20Мб и 2 секунды. Спасибо unsafe. Да и потом... Достаточно было выпилить ООП головного мозга из кода.

Warstone
Как минимум - нет. Было 10Гб и 2 минуты на старт, ...

Это потенциальное место для утечки

Warstone- Автор вопроса
Владислав
И что был за код и что за код стал?

Там всю память вгоняли в словарь раза 2 или 3. Не так важно.

Warstone- Автор вопроса
Phantom
Это потенциальное место для утечки

Ну это да. Если не уметь готовить.

Warstone- Автор вопроса
Phantom
Так проверь

Так я вроде сказал. Общий объем памяти у меня не растет со временем.

Warstone- Автор вопроса
Phantom
В что тогда не так?

Не нравится большое количество аллокаций и деаллокаций.

Warstone- Автор вопроса
Phantom
Похуй?

Ну вообще - да... Но интересно-же ))

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
How to create an OS in C? what to study?
Linus
18
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Народ, с прошедшими и наступающими. Ща полную ересь прогоню, но фишка в том, что это не обычная алкогольная ересь Либера, а я реально хз что делать. Сайт с 2012-го года Косяк...
Alexey Liber
1
Карта сайта