Size: a a a

2020 September 23

P

Phantom in CODE BLOG / C#
Alex_R
Всем привет. Помогите разобраться почему память улетает. Есть класс Person. В нем есть List<Creditinals>. Что в Person, что в Creditinals ничего тяжёлого нет, string, да DateTime. Нажимаю кнопку "Добавить Creditinal", запускается форма через ShowDialog, где пользователь вносит данные. Так же на эту форму прокидываю ссылку на Person. Пользователь ввёл данные, нажал кнопку добавить. Создается new Creditinal, заполняется пользовательскими данными и Person.Creditinals.Add(Creditinal) и вот в этот момент память взлетает около на 100мб. При закрытии формы добавления память так и остается. При переинициализации List<Person> память всё равно висит такая же. Чё за дела.
У тебя List<Person> и в каждом Person List<Creditinal> ?
источник

A

Alex_R in CODE BLOG / C#
Phantom
У тебя List<Person> и в каждом Person List<Creditinal> ?
Да
источник

SB

Sergey Benzenko in CODE BLOG / C#
Alex_R
если её просто открыть и закрыть то всё норм. Память взлетает именно коогда Person.Creditinals.Add(Creditinal)
Ну а если попробовать без формы захардкодить новый Credential и по кнопке его добавить?
источник

P

Phantom in CODE BLOG / C#
Alex_R
Да
Посмотри какой размер у этих списков
источник

P

Phantom in CODE BLOG / C#
А лучше всего, закинь на гитхаб, пастбин и кидай код
источник

A

Alex_R in CODE BLOG / C#
Phantom
А лучше всего, закинь на гитхаб, пастбин и кидай код
много private кода у меня(
источник

P

Phantom in CODE BLOG / C#
Alex_R
много private кода у меня(
Ну, скинь только то, что относится к этому
источник

EA

Egene Avdeev in CODE BLOG / C#
Alex_R
Всем привет. Помогите разобраться почему память улетает. Есть класс Person. В нем есть List<Creditinals>. Что в Person, что в Creditinals ничего тяжёлого нет, string, да DateTime. Нажимаю кнопку "Добавить Creditinal", запускается форма через ShowDialog, где пользователь вносит данные. Так же на эту форму прокидываю ссылку на Person. Пользователь ввёл данные, нажал кнопку добавить. Создается new Creditinal, заполняется пользовательскими данными и Person.Creditinals.Add(Creditinal) и вот в этот момент память взлетает около на 100мб. При закрытии формы добавления память так и остается. При переинициализации List<Person> память всё равно висит такая же. Чё за дела.
Я так понял это WinForms
источник

A

Alex_R in CODE BLOG / C#
Egene Avdeev
Я так понял это WinForms
ага
источник

EA

Egene Avdeev in CODE BLOG / C#
Собери в релиз режиме и запусти именно сам .exe и проверь память в диспетчере задач.  Думаю все будет ок
источник

HJ

Happy Jupiter in CODE BLOG / C#
Ну и optimize code галочку поставить
источник

A

Alex_R in CODE BLOG / C#
Egene Avdeev
Собери в релиз режиме и запусти именно сам .exe и проверь память в диспетчере задач.  Думаю все будет ок
думаешь это только в дебагере такая шляпа?
источник

EA

Egene Avdeev in CODE BLOG / C#
Alex_R
думаешь это только в дебагере такая шляпа?
Процентов 70 что да.
источник

P

Phantom in CODE BLOG / C#
А по мне, он создает кучу херни
источник

EA

Egene Avdeev in CODE BLOG / C#
Phantom
А по мне, он создает кучу херни
Ну не на 100мб же
источник

P

Phantom in CODE BLOG / C#
Phantom
У тебя List<Person> и в каждом Person List<Creditinal> ?
Вот это выглядит сомнительно
источник

P

Phantom in CODE BLOG / C#
Egene Avdeev
Ну не на 100мб же
Хз, хз
источник

HJ

Happy Jupiter in CODE BLOG / C#
Alex_R
думаешь это только в дебагере такая шляпа?
Ну оно вполне вероятно, даже если в шарплабе посмотреть дизасм в дебаге и в релизе, то разница будет ощутимой
источник

Б[

Барсик [SpamBlock]... in CODE BLOG / C#
А почему так к слову?
источник

HJ

Happy Jupiter in CODE BLOG / C#
Отладочная информация скорее всего, я особо не вчитывался что там в дизасме при дебаге, так что точно сказать не могу
источник