Windows 性能计数器从 PerfMon 中消失

2023-12-03

我对此感到完全困惑(TM):在 Win7SP1、64 位机器上,PerfMon似乎完全否认已安装的自定义性能计数器的知识。我正在使用一个现有的代码库,该代码库在生产机器上完美地安装了计数器,但是当我在我的机器上运行它时,当我使用我添加的计数器运行它时,或者如果我运行一个完全人为的程序集(其内容粘贴在下面),我得到了非常奇怪的行为。

使用以下代码片段来描述可能是最简单的:

var category = "SuperTest";
var counterName = "Test Counter 1";
var shouldInstall = true;

if (PerformanceCounterCategory.Exists(category))
{
    shouldInstall = false;
    Console.WriteLine("{0} Category Exists. Overwrite? [n]", category);
    var input = Console.ReadLine();
    if (bool.TryParse(input, out shouldInstall))
    {
        PerformanceCounterCategory.Delete(category);
    }
}
if (shouldInstall)
{
    var col = new CounterCreationDataCollection();
    col.Add(new CounterCreationData()
    {
        CounterName = counterName,
        CounterType = PerformanceCounterType.NumberOfItems64
    });

    PerformanceCounterCategory.Create(category, "Test category.", PerformanceCounterCategoryType.SingleInstance, col);
    // Magical voodoo line that may indicate my inexperience, but whose inclusion or
    // exclusion does not affect discernibly affect behavior.
    PerformanceCounter.CloseSharedResources();
}

// Multithreading setup, each thread repeats block below infinitely:
{
    System.Threading.Thread.Sleep((new Random()).Next(100));
    try
    {
        var counter = new PerformanceCounter(category, counterName, false));
        c.Increment();
    }
    catch (Exception ex) { /* ... */ }
}

第一次运行时,该类别不存在,它会继续创建类别和计数器。我杀死进程,然后打开PerfMon。此时,我可以Add Counter,查看类别和计数器,将其完美添加,然后观察它位于0.000。完美的。此时,如果我关闭PerfMon并重新打开它?我可以很好地看到所有的系统性能计数器,但是我所有的自定义计数器——如上所述,在生产中工作的计数器,我基于这些计数器创建的计数器,and那些做作的——就这样消失了。

有趣的是,如果我运行上面的代码,它会始终告诉我该组存在。再深入一点,计数器甚至是存在的。这对我来说似乎很奇怪。让它保持消失的状态,并从here, 我可以跑:lodctr /R, 和他们do回来。

所以看起来我在某种程度上破坏了我自己的性能计数器存储。我的问题有两个部分:

  1. 这是我正在做的事情(破坏性能计数器存储)吗?
  2. 由于它是可重现的,因此在代码或我正在执行的创建此行为的过程中是否有任何突出的内容?

在我看来,这与其他“性能计数器消失”问题有些不同,因为它们确实存在,而我正在看着它们消失。


问题可能在于计算机和/或其配置,而不是您发布的代码。我遇到过同样的情况,但没有遇到打开性能监视器时计数器消失的原因。不过,我可以帮助你:

  • Perfmon 有时会禁用性能计数器通过在注册表中将其标记为禁用。该链接可能会帮助您找到计数器被禁用的原因。

  • 还可以使用该工具监控计数器typeperf。根据我的经验,typeperf 并没有禁用 perfmon 会禁用的相同计数器,为您提供了监视计数器的替代方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 性能计数器从 PerfMon 中消失 的相关文章

  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • C#:如何将组合框等项目列表保存到 .NET 设置文件中?

    C 如何将组合框等项目列表保存到 NET 设置文件中 设置设计器允许您使用的唯一集合类型是 System Collections ArrayList 如果您确实使用 ArrayList 则其所有元素的类型都必须是可序列化的 具有 Seria
  • 遗留 C/C++ 项目中的死代码检测 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 您将如何进行 C C 代码中的死代码检测 我有一个相当大的代码库可供使用 并且至少 10 15 是死代码 有没有基于 Unix 的工具来识别这个区域
  • mongodb 和 mongomapper

    我有一个 Rails 应用程序 当前使用 activerecord 来存储和查询产品 每个产品都有一个类别和子类别 每个子类别由我可以在应用程序中创建的多个字段定义 由此 当用户想要输入特定产品时 他们会被按下相关的表单字段 这已经变得非常
  • 贝宝集成问题

    我无法弄清楚我的代码做错了什么 我收到错误 我们检测到该购物车存在问题 如果问题仍然存在 请联系商家 这是我正在提交的表格
  • python内部类的用途是什么?

    Python 的内部 嵌套类让我很困惑 有什么事情是没有他们就无法完成的吗 如果有的话 那是什么东西 引自http www geekinterview com question details 64739 内部类的优点 类的逻辑分组 如果一
  • 用鼠标移动绘制的线

    我试图通过用鼠标抓住一条绘制的线来移动它 这条线已经画好了Graphics DrawLine Pen P Point A Point B 创建线条并将其绘制在表单上绝对没有问题 我试过了 将行添加到GraphicsPath 这甚至没有划清界
  • Bootstrap 导航栏下拉菜单项右侧

    如下图所示 当我单击响铃图标时 图标的右下角会出现一个下拉菜单 我希望这个下拉菜单出现在左下角而不是右下角 我应该怎么办
  • CouchDB 使用什么加密机制?

    有谁知道 CouchDB 使用什么类型的加密来安全地存储数据 如何更改 控制 CouchDB 上的这种数据安全加密机制 CouchDB 不会通过加密方式加密静态数据 密码除外 PBKDF2单向哈希 它确实允许通过使用对传输中的数据进行加密H
  • 为多台服务器设置 DiscordBot 的频道 ID

    有人可以帮我设置命令来设置特定服务器的频道吗 这样就不会互相干扰 其实我有这个 var testChannel bot channels find channel gt channel id hereMyChannelID 我想设置所有者可
  • 本地化 Windows Phone 8“应用程序标题”和“平铺标题”字符串

    我有一个简单的 Windows Phone 8 WP8 应用程序 我通过修改 AppResources resx 创建西班牙语版本来对其进行本地化 问题是 WMAppManifest xml 上的 应用程序标题 和 平铺标题 仍采用默认语言
  • Jetty 8 网络套接字

    我已经下载了最新的 Jetty 8 Hightide 但无法使 WebSockets 工作 我解压缩发行版 将 war 文件放入 webapps 文件夹中并启动 java lang NoClassDefFoundError org ecli
  • 从文本文件中解析唯一单词

    我正在开发一个项目 从大量文本文件中解析出唯一的单词 我已经完成了文件处理 但我正在尝试改进解析过程 每个文件都有一个特定的文本段 以我在实时系统上使用正则表达式捕获的某些短语结尾 解析器应该遍历每一行 并根据 3 个标准检查每个单词 长度
  • 如何在 Android 锁屏界面提示用户输入 PIN 码?

    Android 屏幕锁定 解锁编程 and 如何以编程方式锁定 解锁手机 Android 我已经搜索了许多问题的答案 但我没有得到适合我的用法的确切答案 我想在锁定屏幕默认系统锁定屏幕中获取输入凭据或输入密码页面 当我们说 Ok Googl
  • 使背景图像响应 - fullpage.js

    我在用fullpage js用于视差滚动 可以制作背景图吗responsive在大自然中 当我re size my window https github com alvarotrigo fullPage js 下面是我正在使用的示例 ht
  • 为什么 SQL Server 2008 在使用 GROUP BY 时会进行排序并且未指定顺序?

    我遇到了一个非常奇怪的问题 我还没有找到解释 使用 SQL Server 2008 并使用 GROUP BY 它可以对我的列进行排序 而无需指定任何 ORDER BY 这是演示这种情况的脚本 CREATE TABLE Values Fiel
  • 使用 INNER JOIN 从 SQL 转换 UPDATE 以在 MySQL 中使用

    我想在 MySQL 中为我们转换这个 UPDATE product SET price 12 95 FROM product INNER JOIN product to category ON product product id prod
  • 将长日期字符串转换为 R 中的日期

    我有一个日期变量 其格式为 25 APR 2013 03 05 03 000000000 PM 我已将其转换为字符并尝试将其格式化 我确实使用了 as Date 的帮助文档 但它对我没有帮助 我正在尝试找到一种解决方案 将其转换为标准 Y
  • 将列中的类别提取到具有新类别的重复行中

    我有一个看起来像这样的表 Group Name Comment Tag 1 Tag 2 Tag 3 gr1 Joe We are SYSTEM SUGGESTION PAINPOINT gr1 Joe I want PROCESS ATTI
  • Facebook sharer.php 端点不再被弃用吗?

    Facebook sharer php 端点不再被弃用吗 我做了很多挖掘和研究 我们是否仍然可以使用 Facebook 共享对话框 URL 进行共享 http www facebook com sharer sharer php u URL
  • Windows 性能计数器从 PerfMon 中消失

    我对此感到完全困惑 TM 在 Win7SP1 64 位机器上 PerfMon似乎完全否认已安装的自定义性能计数器的知识 我正在使用一个现有的代码库 该代码库在生产机器上完美地安装了计数器 但是当我在我的机器上运行它时 当我使用我添加的计数器