2014-12-29 6 views
8

Я запускаю часть своего кода на C# на Mac с Xamarin Studio и получаю следующую ошибку.Сборщик мусора не смог выделить 16384 байт памяти для основной секции кучи

Error :Garbage collector could not allocate 16384 bytes of memory for major heap section. 

Я попытался установить явное ограничение на управляемой куче и работает с sGen следуя этим советам:
Avoid Mono Cryptic GC Error Messsage

export MONO_GC_PARAMS=max-heap-size=2g 
mono --gc=sgen MyProgram.exe 

Но я до сих пор с той же проблемой.
Не могли бы вы рассказать мне, как это исправить?

+0

Вы работаете на 32-битной машине/сборке? –

+1

Трудно помочь без полного проекта проверить, что выделяет память где и как. –

+1

Я считаю справедливым, что вам нужно показать нам больше вашего кода, как говорит Юрий. –

ответ

1

Убедитесь, что вы не используете Low Latency/поступательных низкая латентность режимов GC, они вызывают такого рода проблемы, не используйте Batch либо (это старый, я думаю), если вы не знаете, что вы делаете , Вы хотите придерживаться интерактивного режима большую часть времени. Подробнее о режимах задержки здесь можно узнать здесь: https://msdn.microsoft.com/en-us/library/bb384202(v=vs.110).aspx