|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Почему нижележащее не работает: Код: c# 1. 2. 3.
То есть с виду оно работает, то есть в менеджере задач видно, что при исполнении 3ей строки память, размещенная этой .NET ассамблеей освобождается (все 2 гига). Но последующая попытка получить объем свободной памяти для процесса, и разместить столько же сколько было освобождено, срубается по ошибке "out of memory"? Процесс 64 бит. Размещает сколько есть свободного минут небольшой запас мег 100. Все синхронизировано во избежание. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2018, 18:27 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Получается, что 2й раз удается разместить чуть больше, чем оставалось свободного от первого раза. То есть например, свободно 2.1 гига, размещаем 2 ровно, эти строчки освобождают 2, разместить удается 120-130 метров Думаю эта разница скорее связана с "пульсацией" программ и ОС, чем имеет объективную причину. В общем, мусорщик .NET не работает от слова вообще. В жабе это как два пальца - захотел, освободил. А здесь или каленым железом, или вообще никак. Кому нибудь удавалось принудить его освобождать? Судя по реакции некоторых личностей связанных с мелкими мягкими, это больная тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 00:45 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Kobler....Процесс 64 бит.....Уверен? Потому что память выделится (вроде как) сколько угодно, но пока ты к ней не обратишься, реально не существует и не проверяется на возможность ее реальной блокировки и использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 01:02 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Kobler, Попробуй не управлять память явно. Только освобождай ссылки. Вот тогда выкладывай ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 07:39 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Kobler, а цель, задача какая? "В жабе это как два пальца" и тут хочется? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 08:20 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo KoblerСудя по реакции некоторых личностей связанных с мелкими мягкими, это больная тема. По ходу проблемы только у жабоводов. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 16:26 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
hVostt, Мусорщик памяти что там что там есть. Походу это личная проблема ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 16:40 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Есть объекты занимают больше 86кб, они размещаются не в HEAP, а в LOH. Память выделенная под LOH не дефрагметируется и не высвобождается до тех пор, пока в ней не останется не 1 объекта. То есть, если создать 100500 объектов размером в 100кб, а потом удалить ссылки на 100499, но 1 не удалить, вся выделенная память будет использоваться до тех пор, пока последняя ссылка не протухнет. В 99% случаев нет не 1 причины для вызова GC.Collect(), Управлять памятью ручками в C# еще хуже и более черевато, чем управлять GC. тем более сборка мусора для 2 поколения выполняется значительно дольше, чем для 0 и 1 Чтоб понять, что именно занимает место в памяти используйте профайлеры, либо сделайте Dump и смотрите через анализаторы dump'а ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 16:56 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Почему мусоросборщик .NET настолько больная тема, что вызыввает сразу переход на личности и бросание калом? "Не нужно беспокоиться" и "нельзя пытаться" - две большие разницы. Кому-то не нужно беспокоиться и они не беспокоятся и все прекрасно. Таких разрабов на .NET 99%. А кому-то попадается задача которую нужно решить любой ценой и им приходится беспокоиться и пытаться. Ну нахамите вы мне, закидаете калом, но задачу я все равно решу, получу за это бабки и никому не скажу как. Удачи вам. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 17:51 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo KoblerПочему мусоросборщик .NET настолько больная тема, что вызыввает сразу переход на личности и бросание калом? "Не нужно беспокоиться" и "нельзя пытаться" - две большие разницы. Кому-то не нужно беспокоиться и они не беспокоятся и все прекрасно. Таких разрабов на .NET 99%. А кому-то попадается задача которую нужно решить любой ценой и им приходится беспокоиться и пытаться. Ну нахамите вы мне, закидаете калом, но задачу я все равно решу, получу за это бабки и никому не скажу как. Удачи вам. да и вам не хворать ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 17:58 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo KoblerПочему мусоросборщик .NET настолько больная тема, что вызыввает сразу переход на личности и бросание калом? Повторюсь, по ходу проблемы и странные извращённые комплексы только у жабоводов. Лечитесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 18:15 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Koblerно задачу я все равно решу, получу за это бабки и никому не скажу как.он не жабовод. Там взрослые люди и так не пишут). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 18:45 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Petro123Gobzo Koblerно задачу я все равно решу, получу за это бабки и никому не скажу как.он не жабовод. Там взрослые люди и так не пишут). Да понятно. Суть в психических отклонениях у людей, которые приходят в ветку по определённой технологии и начинают нести что-то типа «а вот в XXX всё с этим нормально...», помогать больным не хочется, их надо лечить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 19:04 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Так как все таки освободить память в .NET чтобы ее можно было повторно использовать? Примерчик можно? Я свой привел. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 19:20 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Kobler, Чтобы память очистить, вы должны освободить все корневые ссылки. Пока вы этого не сделаете, любые GC.Collect будут бесполезны. Вы бы хоть почитали, как работают сборщики мусора. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 19:43 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
hVostt, объект порожден от idisposable и завернут в using. когда код вышел за закрывающую скобку, и вышел из метода, какие остаются причины не освобождать? или перефразируем: если память не освободилась по законным причинам, почему SetProcessWorkingSetSize() успешно возвращает working set к размеру до размещения объекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 20:06 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Koblerобъект порожден от idisposable и завернут в using. когда код вышел за закрывающую скобку, и вышел из метода, какие остаются причины не освобождать? IDisposable имеет ровно никакое отношение к управлению памятью. Точнее, в Dispose вы можете обнулить ссылки, выполнить процедуры по очистке занимаемых ресурсов, освободить дескипторы файлов, закрыть соединения и т.д. Если имеются unmanaged ресурсы, то очистить их. На управление памятью паттерн Disposable это никак не влияет. Кроме того, мы откуда знаем как именно и с чем вы работаете? Какую задачу вы пытаетесь решить? Какая версия .NET, какие условия? Как и чем именно вы забили память? Как долго память была занята? Какой характер данных, с которыми вы работаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 20:56 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Kobler, Достал свой хрустальный шар, протёр пылюку, вот что он мне выдал, попробуйте: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 21:05 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
hVostt, Круто! С этой строчкой работает. Пытаюсь вставить картинку, но что-то в превью ее не видно 1. размещение 5.6 гиг 2. вызовы сборщика 3. посидели, подождали может быть оно само освободит, но нет. вызов API для сокращения working set. дальше повторное размещение. если не использовать API то повторное размещение видит только 1.1 гиг свободных и только его может разместить вместо спада после 3 там такой бугорочек небольшой. вот вам и мусорщик. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 21:42 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Прямая ссылка на скрит таскменеджера https://imgur.com/M2TxiYZ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 21:44 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo KoblerПытаюсь вставить картинку, но что-то в превью ее не видноПотому что ссылку надо давать на картинку, а не на страничку с кучей баннеров )) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 21:59 |
|
Почему не освобождается память ни какими усилиями?
|
|||
---|---|---|---|
#18+
Gobzo Koblerвот вам и мусорщик Сборщик мусора не панацея, работая с большими объёмами данных в памяти следует избегать фрагментации, работать большими блоками и переиспользовать выделенную память. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 22:13 |
|
|
start [/forum/topic.php?fid=20&msg=39621504&tid=1399443]: |
0ms |
get settings: |
101ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 330ms |
total: | 584ms |
0 / 0 |