垃圾回收器无法为主堆部分分配 16384 字节的内存

本文关键字:分配 堆部 16384 字节 内存 | 更新日期: 2023-09-27 18:35:36

我正在使用Xamarin Studio在Mac上运行我的一些C#代码,并收到以下错误。

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

我尝试在托管堆上设置显式限制,并按照以下建议使用 sGen 运行:
避免单声道神秘的 GC 错误消息

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

但我仍然有同样的问题。
你能告诉我如何解决这个问题吗?

垃圾回收器无法为主堆部分分配 16384 字节的内存

确保您没有使用低延迟/持续低延迟 GC 模式,它们会导致此类问题,也不要使用 Batch(我认为它很旧),除非您知道自己在做什么。您希望大多数时间都坚持使用交互模式。您可以在此处阅读有关延迟模式的更多信息:https://msdn.microsoft.com/en-us/library/bb384202(v=vs.110).aspx