根据线程消毒剂文档:
ThreadSanitizer 使用比本机运行更多的实际内存。在默认设置下,每个线程的内存开销是 5 倍加 1Mb。还提供 3x(不太准确的分析)和 9x(更准确的分析)开销的设置。
我如何选择这些设置?找不到它们的命令行参数。
您正在寻找的设置在有关线程清理程序标志的页面上进行了描述:https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags。它是
history_size
选项,默认设置为 2,但可以采用 0..7. 之间的值
历史记录大小表示存储了多少内存访问 - 越多,分析就越准确。请参阅有关线程消毒剂工作原理的一些背景:https://github.com/google/sanitizers/wiki/ThreadSanitizerAlgorithm