|
|
1
9
这里有一个简单的技巧。它可能不是100%准确,但可能足够好。
创建一个对象,不要保留对它的引用。完成对象后,引发事件,然后构造另一个对象。您也不会保留对该对象的引用,但它将一直存在,直到下次执行足够完整的集合。 这里有这样一个对象:
如果需要,可以添加对停止它的支持,方法是使用一个静态布尔字段,防止它在下次完成时重新启动自身。
|
|
|
3
2
简单的回答是“不,没有GC‘events’,只有GCNotification函数”。但是,您创建了一个包装类,它将侦听
原因是事件可能在GC完成之前被处理,也可能不被处理。所以他们让你做的是产生一个孩子的线索,睡在上面
|
|
|
4
1
你监控性能吗?您可以监视CPU—总体和按进程,.NET内存,包括每一代的大小和GC类型的计数。您还可以让perf mon运行并长时间记录以查看趋势。我发现这比“现在就发生”更有用事件。 |
|
|
5
1
ASP.NET Performance Monitoring, and When to Alert Administrators 它包含一个关于GCcounters的部分,可以查看这些值的含义。例如
你可能还想看看博客 If broken it is, fix it you should 它有许多案例研究,一步一步地说明如何识别一个特定的问题。例如 ASP.NET Case Study: High CPU in GC - Large objects and high allocation rates |
|
codeforester · 测量GC暂停时间的最佳方法是什么? 8 年前 |
|
|
Venki WAR · 需要解释G1的并行完整GC 8 年前 |
|
|
Stephan_Berlin · 为什么CMS系列中的初始标记阶段 8 年前 |
|
|
Bonsaisteak · 为什么年轻一代需要三个区域来收集垃圾? 8 年前 |
|
|
goks · 如何清除熊猫的数据帧内存? 8 年前 |