Ben*_*Ben 5 c# garbage-collection
C#AddMemoryPressure调用是否会为要调用的特定对象添加连接?我已经看到它在我们的性能跟踪中显示了很多,并且我想要每10MB左右批量调用一次,但是如果它检查堆栈以将压力信息附加到它认为正在分配的特定对象那么赢了工作
AddMemoryPressure 仅告诉 GC 使用的内存多于 GC 可见的内存。它没有连接到任何对象。
使用 AddMemoryPressure 可能会导致清理运行更频繁,但我不知道这对性能是好是坏。我认为这会增加在某些事情中间运行清理而不是仅在空闲时运行的风险。
文档中的这一行可能是您所需要的
“在更复杂的情况下,非托管内存分配在托管对象的生命周期内发生很大变化,您可以调用 AddMemoryPressure 和 RemoveMemoryPressure 方法将这些增量更改传达给运行时。”
只要您删除的数量与添加的数量相同,您就可以根据需要调用这些方法。