垃圾收集器无法为主要堆部分分配 16384 字节的内存
Posted
技术标签:
【中文标题】垃圾收集器无法为主要堆部分分配 16384 字节的内存【英文标题】:Garbage collector could not allocate 16384 bytes of memory for major heap section 【发布时间】:2015-02-25 10:23:40 【问题描述】:我正在使用 Xamarin Studio 在 Mac 上运行我的一些 C# 代码并收到以下错误。
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
但我仍然有同样的问题。 你能告诉我如何解决这个问题吗?
【问题讨论】:
您使用的是 32 位机器/版本吗? 如果没有完整的项目来检查分配内存的位置和方式,很难提供帮助。 我认为公平地说,你需要向我们展示更多你的代码,就像 Yuri 所说的那样。 【参考方案1】:确保您没有使用 Low Latency / Sustained Low Latency GC 模式,它们会导致此类问题,也不要使用 Batch(我认为它已经过时了),除非您知道自己在做什么。您大部分时间都想坚持交互模式。 您可以在此处阅读有关延迟模式的更多信息: https://msdn.microsoft.com/en-us/library/bb384202(v=vs.110).aspx
【讨论】:
以上是关于垃圾收集器无法为主要堆部分分配 16384 字节的内存的主要内容,如果未能解决你的问题,请参考以下文章