问题标签 [performancecounter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# - 获取 RawFraction 性能计数器以显示持久值
我创建了一个性能计数器,它显示了RawFraction
基值 ( ) 上的增量值 ( type) 的一部分RawBase
。
不幸的是,在监视此值时,它仅显示其中一个计数器增加时的百分比。在所有其他时间它被采样时,它显示为 0。有没有办法告诉计数器保持最后一个值,直到下一次需要重新计算分数?
c# - Windows 性能监视器中的性能计数器计时器值不准确
我正在应用程序中实现检测,遇到了一个问题,即从 PerformanceCounter 在 Windows 性能监视器中显示的值与记录的值不一致。
我使用秒表来记录方法执行的持续时间,然后首先将总毫秒记录为双精度,然后将秒表的 TimeSpan.Ticks 传递给 PerformanceCounter 以记录在性能监视器中。
在 perfmon 中创建性能计数器:
然后记录我从集合中检索一个预初始化的计数器并递增:
...其中“计时”是秒表的 TimeSpan.Ticks 值。
运行时,双精度值的集合(秒表 TimeSpan 的毫秒值)显示一组值,但出现在 PerfMon 中的是一组不同的值。
例如……毫秒列表中记录的两个值是:
23322.675、14230.614
PerfMon 图中显示的是:
15.546, 9.930
有人可以解释一下吗?
c# - 如何在 C# 中从 OpenOffice 获取性能信息?
我正在尝试使用 C# 中的性能计数器类监视 openoffice 的性能信息。我遇到了一个奇怪的问题,虽然我的程序可以很好地监控其他应用程序信息,但它无法使用相同的程序正确监控 Open Office 的性能数据。本质上,我创建了一个进程并让性能计数器使用它的文件名从该进程中获取处理器时间。我注意到,OpenOffice 在任务管理器下有两个进程;一个是soffice.bin,一个是soffice.exe。bin 文件比 exe 文件占用更多的内存,所以我试图监控在 exe 文件没有给我可用的性能数据之后(性能控制器一直返回值 0)。但是,bin 文件也有同样的问题——我无法获得任何可用的性能数据,
谁能告诉我为什么我没有得到关于 openoffice 性能的任何好的读数?我使用了错误的进程名称,还是更微妙的名称?
c# - 性能计数器注册表验证
我有一个 C# 应用程序,它在启动时添加了一些性能计数器。但是如果注册表 HKEY_LOCAL_MACHINE->SOFTWARE->Microsoft->Windows NT->CurrentVersion->Perflib 损坏(丢失或无效数据),检查性能计数器是否存在的操作(PerformanceCounterCategory.Exists(category) 确实需要很长一段时间(大约 30 秒)才最终抛出异常(InvalidOperation:类别不存在)。
我的问题是如何在尝试添加性能计数器(以及有效性意味着什么)之前验证注册表的有效性,或者是否存在我可以使 perf 计数器操作超时,这样就不需要 30 秒来获得异常。
c# - 模拟 - 访问被拒绝
我在使用模拟从 MVC 网站中删除 PerformanceCounterCategory 时遇到问题。我有一个静态类,当应用程序启动时,它会检查 PerformanceCounterCategory 是否存在,以及它是否包含正确的计数器。如果没有,它会删除该类别并使用所需的计数器再次创建它。
在内置的网络服务器 Cassini 下运行时它工作正常,但是当我尝试通过 IIS7(Vista)运行它时,我收到以下错误:
访问被拒绝
说明:
在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:
System.ComponentModel.Win32Exception:访问被拒绝
我对代码的使用:
MS文章中的模拟代码...
处理尝试执行 PerformanceCounterCategory.Delete 命令时引发错误。
更新
为了回应大卫的回答,我尝试了以下方法:
- 创建了一个名为 PerfMonUser 的新本地用户
- 将此用户添加到“性能监视器用户”组
修改了代码,现在显示为:
...但我仍然收到错误:
异常详细信息:System.ComponentModel.Win32Exception:访问被拒绝
...在线上:
c# - 性能计数器
我为我的 C# 应用程序创建了一个性能计数器。它的类型是NumberOfItems32
. 我不知道为什么,但是当我的计数器肯定比这大得多时,性能监视器只会在 y 轴上将我显示为最大值只有100 。你知道这是正确的行为还是我做错了什么?
c# - 我的进程的 CPU 消耗
我想使用性能监视器来检查我的进程的 CPU 消耗。现在我正在开发一台多核机器。
如果我在 TASK MANAGER 中查看我的进程,我会发现我的进程消耗了 20% 的 CPU。如果我启动性能监视器,我选择 Process->->% Processor Time 我看到值达到峰值并超过 100%。你知道为什么以及如何获得真正的衡量标准吗?
我还查看了所有 4 个内核的 CPU 消耗,但我不知道如何将消耗归因于我的进程。
如果您可以建议有关如何读取 CPU 使用情况的链接或网址,我将不胜感激!非常感谢!AFG
.net - 调用 PerformanceCounterCategory.Create() 时抛出“System.ComponentModel.Win32Exception: Access is denied”
在我的机器上调用 PerformanceCounterCategory.Create() 可以消除这个异常:
System.ComponentModel.Win32Exception:访问被拒绝
事件查看器中报告的消息如下:
无法打开或访问 SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 键以安装计数器字符串。调用返回的 Win32 状态是数据部分中的第一个 DWORD。
你知道它有什么问题吗?
谢谢!
.net - 服务器开发中的性能计数器
你们所有人都同意将性能计数器用于服务器应用程序的价值。
我想知道如何使用 C# 来实现这些。
通常性能计数器具有以下属性:
- 它们是共享的/全局的
- 写入需要锁来保证同步
- 阅读有时也需要锁
异步更新它们会更好吗?使它们异步的最佳方法是什么?
我打算使用 ThreadPool.QueueUserWorkItem() 函数。您对此有何看法?
如果我的问题看起来有点模糊,请查看 HelloWorld WCF 服务。
我还想知道以下内容:
- 在特定时期内总体被击中多少次
- 总体和特定时期内的平均/最小/最大响应时间
如果有人知道在 .NET 或 WCF 中执行此操作的任何专门方法,请告诉我。
performance - 如何从内核获取页面错误统计信息
如何在应用程序运行时从内核获取页面错误统计信息?那么其他事件呢,例如 SMP 节点中的 CPU 间迁移计数或上下文切换的数量?
我想为程序的各个小部分计算此类事件。
谢谢。