gpt4 book ai didi

c# - 避免 Mono Cryptic GC 错误消息

转载 作者:太空狗 更新时间:2023-10-30 01:36:32 24 4
gpt4 key购买 nike

我目前正在单声道 (Mac OSX) 中运行一个程序,该程序读取一个非常大的数据文件并在聚合后创建摘要统计信息。

奇怪的是,我在程序的某个时刻收到以下错误消息:

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

我希望出现 OOM 异常,或者其他我可以使用的东西。我尝试通过以下方式增加最大堆大小:

export MONO_GC_PARAMS=max-heap-size=4g

但是,它最终告诉我需要将它设置为一个整数,尝试使用适当的零手动输入该值会导致在执行开始时出现 gdb 转储。

让我恼火的是,我认为在代码的这个特定部分中断的地方,机器上有 16384 字节可用,我认为它应该能够很好地进行 GC 并获得更多内存。

有人知道如何解决这个问题吗?

最佳答案

如果您使用的是 mono 2.10.8 或更高版本,您可以尝试使用更高级的 sgen 垃圾收集器执行 mono 应用程序,它不像默认 GC 那样保守。

它解决了我遇到的一些内存泄漏问题,也许您遇到了相关问题。

要使用 sgen 运行,您必须确保安装了 mono-runtime-sgen,然后在执行程序时使用以下命令行参数:

mono --gc=sgen YourProgram.exe

关于c# - 避免 Mono Cryptic GC 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21970852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com