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

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

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

32 ответов

23 просмотра

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
Похуй?

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

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

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

лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
Яндекс маршрутизатор кто-нибудь использовал с своих проектах, чтоб через него маршруты составить/посчитать? Насколько простой/муторный сервис?
Dreamer_0x01 VeseloV
7
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Дебил? Я ищу друга
Bitard 228
27
Карта сайта