问题标签 [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.

0 投票
1 回答
38188 浏览

c# - 列出所有进程及其当前的内存和 CPU 消耗?

如何获取 C# 中所有进程的列表,然后获取每个进程的当前内存和 CPU 消耗?

示例代码受到高度赞赏。

0 投票
2 回答
14015 浏览

c# - 列出一个类别的所有性能计数器

System.Diagnostics 中是否有用于检索给定 CategoryName 的所有实例化性能计数器的内置方法?

我们有许多使用自定义性能计数器的多线程应用程序,现在需要添加一个仪表板来显示性能统计信息。

我想以这样一种方式制作仪表板,即每当有人将新计数器添加到新代码中时,它都不需要更新。

0 投票
1 回答
224 浏览

.net - 通过 ASP.NET AJAX 调用使用 PerformanceCounter

在我们的办公室里,我们有一个安装在墙上的 40" LCD,它运行一个全屏的 Firefox 实例,该实例又承载一系列模块。这些模块中的每一个都是一个自包含的 DIV,带有一个 AJAX 接口(通过 jQuery)到服务器来执行它的功能。

其中一个模块监控我们的服务器 CPU、内存和磁盘使用情况。

在服务器端,我们曾经使用WMI,但通过重写尝试使用 .net 中的PerformanceCounter类。

然而,PerformanceCounter 类的问题在于默认的 IIS 匿名帐户无权接收所需信息。

我有一个有权检索这些统计信息的帐户并尝试使用:

然而,这阻止了 IIS 运行任何东西,所以我猜该帐户没有对 Web 服务器的权限。

基本上我所追求的是一种在使用 PerformanceCounter 时模拟另一个帐户的简单方法,就像在 WMI 下一样。

0 投票
1 回答
721 浏览

.net - RAM PerformanceCounter 问题

我的代码:

问题:

  1. 文档似乎说我只能将 PerformanceCounter 用作管理员,但我以标准用户身份运行我的应用程序并且它有效。我可以依靠吗?
  2. 当剩余大约 200 MB RAM 时,我一直得到OutOfMemoryException ,为什么?这不可能是由于碎片,因为我一次分配一个 int 。此外,这不可能是因为可寻址性问题,因为我已经超过 2GB(当我的 3GB 中的 2.8 被占用时抛出异常)。测试应用程序输出的数字通过旁边运行的任务管理器窗口进行了验证。
  3. 一旦我在测试应用程序运行并且剩余大约 400 MB 时遇到 BSOD。关于可能导致这种情况的任何提示?我会检查 RAM 的完整性,还有什么?我应该小心PerformanceCounter.NextValue()循环调用还是什么?请注意,这是我第一次在这台 PC 上遇到 BSOD。
  4. 在程序执行的某些时候,我会遇到很大的延迟。例如,当我从 1 GB 可用 RAM 开始时,当我达到 700 MB 时,应用程序会冻结 1 秒,然后在大约 400 MB 时会冻结约 4 秒。为什么是这样?因为操作系统需要换出磁盘缓存以释放内存,还是什么?

注意:我为什么要这样做?好吧,我希望我的内存密集型应用程序检测到何时剩余 5 MB RAM,并提醒用户“内存不足,请关闭其他程序并返回,否则此程序将失败。”

0 投票
1 回答
3406 浏览

c# - 计算 Windows 进程的 CPU 使用率?

给定一个进程 ID,我如何使用 C# 从这个进程中获取 cpu 负载?

我已经尝试使用 PerformanceCounter,如c# 计算特定应用程序的 CPU 使用率中所述

我还尝试在一个时间范围内手动获取进程的总 cpu 时间的两个值,并将 delta-cpu-time 除以 delta-total-time。

这两种方法一开始似乎都可以正常工作,但是如果我将我的应用程序放在 Windows 任务管理器旁边,我的应用程序总是显示大约是任务管理器的两倍。我尝试使用从 10 毫秒到 10 秒的各种时间步进行更新,并始终获得相同的结果。

嗯,当我写这篇文章时意识到这可能是某种双核问题......

0 投票
3 回答
3933 浏览

c# - 使用性能计数器跟踪 Windows 服务

我正在使用一个由多个应用程序和服务组成的系统,几乎都使用 SQL 数据库。

Windows 服务在不同的时间做不同的事情,我想跟踪它们。这意味着在某些已部署的系统上,我们看到机器在 CPU 上运行得很高,我们看到 sql 进程运行得很高,但我们不能确定哪个服务负责它。

我想知道性能计数器是否适合这项工作。

基本上我希望能够在某个时刻看到哪个服务唤醒并正在处理某些东西。

在我看来,我最终可以得到一个perfcounter只有值 0 或 1 的每个服务来显示它是否正在做某事,但这似乎不是perfcounters.

性能计数器是否合适?

你认为我应该以不同的方式跟踪这个吗?

0 投票
3 回答
3771 浏览

c# - 为什么我的性能计数器不会改变?

我一定在这里做错了什么。我创建了一个自定义性能计数器,如下所示:

计数器类别和计数器在性能监视器中创建和查看。

然后我尝试更改计数器的值

然而,当我坐下来观察性能监视器中的计数器时,什么也没发生,值永远不会改变。

那么我做错了什么?

如果我添加对 nextValue() 或 rawValue() 的调用,则该值按预期返回,但 Windows 性能监视器仍显示一条平线,例如

编辑:我发现如果我关闭性能监视器然后重新打开它而不删除计数器,它会突然意识到有一个新值。因此,这些值正在设置并保持不变,但是性能监视器看不到更改。

0 投票
2 回答
4409 浏览

asp.net - ASP.NET 和输出缓存 - 如何查看它是否正常工作?

问题:我有一个 ASP.NET 网站,但我不相信我的代码正确地得到了 OutputCached。我正在使用 IIS7 性能计数器向我显示命中或未命中一秒。


我有一个简单的 ASP.NET MVC 网站。我正在使用内置的 ASP.NET 输出缓存魔法。

这是一些示例代码:-

所以这意味着每个 url 查询都可以如下所示:-

现在,请注意我是如何让 OutputCache 引用配置文件的?这里是...

没什么太难的...

所以这是踢球者!当我通过使用 IIS7 性能计数器确认发生这种情况时,它表示输出缓存未命中/秒是我每秒发出的请求的 100%。输出缓存命中率为 0/秒。

我正在使用第 3 方网络负载压力测试程序来向我的网站发送查询。现在,源数据是什么?名单。程序不断循环遍历所有名称,然后返回开始,重复冲洗。因此,必须至少调用一次相同的查询字符串。IIS 日志文件证实了这一点。

我没有为 alpha 或 beta 传递任何数据。

这是我正在点击的查询字符串....

...我一直用数据源文件中的名称替换“hello+world”,IIS 日志证实了这一点。

所以..我在看错误的性能计数器吗?是否有任何其他技巧可以查看它是否正在输出缓存?代码非常快,因此很难判断这是否是缓存结果。

0 投票
1 回答
8099 浏览

performancecounter - Web 服务 - “当前连接”性能计数器

最近我开始使用 VSTS,并制作了一些测试脚本来针对网站运行。这些脚本基本上由一个同步的 WebService 请求组成。

我用 2000 个用户运行了这个脚本并检查了当前连接性能计数器,但它从未高于 17。运行的测试数量始终接近 150,并且由于测试仅包含一个 WebService 请求,我认为当前连接与此类似数字。

有人可以解释一下 Current Connections 计数器的真正含义,因为它似乎不是一次处理的请求数吗?

提前致谢!

0 投票
1 回答
18475 浏览

c# - .NET 4.0 和 Windows 7 上的性能计数器

我有一个在 VS2008 和 Vista 上运行良好的程序,但我正在 Windows 7 和 VS2010 / .NET Framework 4.0 上尝试它,但它不工作。最终的问题是System.Diagnostics.PerformanceCounterCategory.GetCategories()(和其他 PerformanceCounterCategory 方法)不起作用。我收到 System.InvalidOperationException 消息“无法加载计数器名称数据,因为从注册表中读取了无效索引”。

我可以使用如下所示的非常简单的程序重现这一点:

我确实确保我以管理员身份运行该程序。我是否在附加 VS/Debugger 的情况下运行它并不重要。我没有另一台装有 Windows 7 或 VS2010 的机器来测试它,所以我不确定这里的事情(或两者都复杂?)。它是 Windows 7 x64,我尝试强制应用程序在 x32 和 x64 中运行,但得到相同的结果。