【发布时间】:2020-06-08 10:25:56
【问题描述】:
浏览SICStus Prolog User's Manual我偶然发现了Prolog标志gc_tracing。
我想知道更多,所以我从"Book Index" 开始,发现gc_trace 的3 个条目:
G
gc_trace (prolog flag): ref-lps-flg (#1: "4.9.4 Prolog Flags")
gc_trace (prolog flag): ref-mgc-egc (#2: "4.10.3 启用和禁用垃圾收集器")
gc_trace (prolog flag): ref-mgc-mgc (#3: "4.10.4 Monitoring Garbage Collections")
当我点击链接时,我发现了以下内容:
4.9.4 Prolog 标志
gc_trace
管理全局堆栈垃圾回收跟踪消息。
verbose 打开垃圾收集的详细跟踪。
简洁 打开垃圾收集的简洁跟踪。
关闭 打开关闭垃圾收集跟踪(默认)。4.10.3 启用和禁用垃圾收集器
[...] 要在详细模式下监视垃圾收集,请将 gc_trace 标志设置为详细。 [...]
4.10.4 监控垃圾收集
默认情况下,不会向用户指示垃圾收集器正在运行。如果没有程序用完空间,也没有程序使用大量全局堆栈空间需要过多的处理时间,则不太可能需要此类信息。
但是,如果一个被认为使用大量全局堆栈空间的程序用尽空间或运行异常缓慢,那么用户可能想确定是否需要更多或更少频繁的垃圾收集。通过打开 gc_trace Prolog 标志从垃圾收集器获得的信息可能有助于此确定。
在“off - terse - verbose”的范围内,我想说:简洁!哈哈,只是认真的:)
最后,不用多说,这是我的实际问题:
给定 OCaml 垃圾收集器的详细标志,找到与 SICStus Prolog GC 详细级别“off”、“terse”和“详细”。
Module GC
mutable verbose : int;此值控制标准错误输出上的 GC 消息。它是以下一些标志的总和,用于在相应事件上打印消息:
0x001主 GC 周期的开始。0x002次要收集和主 GC 切片。0x004堆的增长和缩小。0x008堆栈和内存管理器的大小调整表。0x010堆压缩。0x020GC参数的变化。0x040主要GC切片大小的计算。0x080终结函数的调用。
@ 987654339@ 启动时的字节码可执行文件和共享库搜索。0x200压缩触发条件的计算。0x400程序退出时输出 GC 统计信息。默认值:0。
end_of_file
【问题讨论】:
标签: prolog garbage-collection ocaml sicstus-prolog verbosity