1

我正在使用较新的System.Diagnostics.PerformanceData api 集写入我的计数器,并希望同时从多个进程增加/减少单个计数器。

我尝试以各种方式调整 CounterSetInstanceType 均未成功:

如果我使用 Multiple 或 MultipleAggregate,我总是会在 perfmon 中看到一个实例,但实际上每个进程都有一个单独的计数器,它们会相互覆盖。Single counterset 类型也会发生相同的行为。

当我尝试使用 gloablAggregate 计数器集类型的性能监视器时,似乎根本没有读取这些值。

4

1 回答 1

1

回答我自己的问题:

如此处所述:http: //msdn.microsoft.com/en-us/library/windows/desktop/ee781345%28v=vs.90%29.aspx

您需要指定如何在清单文件中聚合计数器(通过为每个计数器设置聚合属性)。

似乎不这样做会导致计数器简单地停留在 0 / 未定义。

在 globalAggregate 的情况下,这非常有效。

在 multipleAggregate 的情况下,这只会对自动为 counterset 创建的 _Total 实例产生影响(作为将其定义为 multipleAggregate 的结果)。所有其他实例都保持旧行为。

似乎还有一个“MultipleInstanceAggregate”计数器类型,但据我所知,清单模式不支持它。(参见:http: //msdn.microsoft.com/en-us/library/system.diagnostics.performancedata.countersetinstancetype

于 2012-06-04T23:31:18.127 回答