标签: performancecounter

内存带宽使用情况

你如何计算使用的内存(RAM)带宽?需要哪些性能计数器?

我遇到了一个能够做到这一点的工具,即"Rightmark多线程内存测试".但与Rightmark的其他测试不同,我没有找到它的源代码,只是二进制文件

c c# c++ hardware performancecounter

5
推荐指数
1
解决办法
988
查看次数

为硬盘读写创建事件

我正在尝试编写一些可以在硬盘读取数据或写入数据时触发事件的内容.我知道这涉及到使用System.Diagnostics.PerformanceCounter,但我不太了解这个能够自己做到这一点.有人能指出我正确的方向吗?此外,我希望触发的事件返回正在读取或写入的驱动器.任何帮助,将不胜感激.顺便说一句,这是C#.

.net c# performancecounter

5
推荐指数
1
解决办法
1873
查看次数

使用PerformanceCounters定位特定驱动器

大家好,我有以下代码:

using System.Diagnostics;

private PerformanceCounter diskRead = new PerformanceCounter();
private PerformanceCounter diskWrite = new PerformanceCounter();

diskRead.CategoryName = "PhysicalDisk";
diskRead.CounterName = "Disk Reads/sec";
diskRead.InstanceName = "_Total";

diskWrite.CategoryName = "PhysicalDisk";
diskWrite.CounterName = "Disk Writes/sec";
diskWrite.InstanceName = "_Total";
Run Code Online (Sandbox Code Playgroud)

此代码记录每秒磁盘读取数和每秒磁盘写入数,它可以正常工作.我的问题是,如何跟踪一个特定驱动器的读写?我的计算机中有3个硬盘驱动器,现在它总共返回了所有3个驱动器.我如何具体选择我想要监控的驱动器?

.net c# performancecounter

5
推荐指数
1
解决办法
3436
查看次数

为什么QueryperformanceCounter的时间与挂钟不同?

您好我使用QueryperformanceCounter来计算Delphi中的代码块.出于某种原因,使用QueryPerformanceCounter获得的毫秒数与使用秒表的挂钟时间完全不同.例如,秒表给了我大约33秒,这似乎是正确的,如果不准确,但使用QueryPerofomanceCounter将给我一个像500毫秒的数字.

通过我的代码,我可以看到QueryPerformanceFrequency给我正确的CPU CPU频率,CoreG E6600的2.4G.因此,如果刻度号是正确的,(tick number / Freq) * 1000应该给我正确的代码执行时间,但为什么不呢?

我知道,对于我想要计时的代码,QeuryPerformanceCounter可能过度杀死,因为花了几秒而不是百万秒,但我更感兴趣的是了解挂钟和QueryPerormanceCounter之间时差的原因.

我的硬件是E6600 Core2,操作系统是Windows 7 X64,如果它是相关的.

unit PerformanceTimer;

interface

uses Windows, SysUtils, DateUtils;

type TPerformanceTimer = class
  private
    fFrequency : TLargeInteger;
    fIsRunning: boolean;
    fIsHighResolution: boolean;
    fStartCount, FstopCount : TLargeInteger;
    procedure SetTickStamp(var lInt : TLargeInteger) ;
    function GetElapsedTicks: TLargeInteger;
    function GetElapsedMiliseconds: TLargeInteger;
  public
    constructor Create(const startOnCreate : boolean = false) ;
    procedure Start;
    procedure Stop;
    property IsHighResolution : boolean read fIsHighResolution;
    property ElapsedTicks : TLargeInteger read GetElapsedTicks;
    property ElapsedMiliseconds : TLargeInteger …
Run Code Online (Sandbox Code Playgroud)

delphi performancecounter

5
推荐指数
2
解决办法
4990
查看次数

如何衡量一个锁的争用率

我目前在使用某个应用程序(.net 4.0,c#)的争用率时遇到问题.我正在维护.我想做的是写一个PerfCounter,如果一个部分锁无法被获取.现在我只有.net提供的整体计数器,但我想为一些选定的锁具有PerfCounter.

Profiler等对我来说不是一个选择,因为这是一个我无法触及的高性能生产环境,我可以记录perfcounters.

.net c# performance performancecounter contention

5
推荐指数
1
解决办法
831
查看次数

C#性能计数器数据是"遍布地图"

我需要计算整个系统以及特定进程的CPU和RAM使用率.我从未在C#中做过这个.所以我能够提出以下代码(我主要从这个网站上的样本中获取):

try
{
    Process proc = Process.GetCurrentProcess();
    string strProcName = proc.ProcessName;
    Console.WriteLine("Process: " + strProcName);

    using (PerformanceCounter total_cpu = new PerformanceCounter("Process", "% Processor Time", "_Total", true))
    {
        using (PerformanceCounter process_cpu = new PerformanceCounter("Process", "% Processor Time", strProcName, true))
        {
            for (; ; )
            {
                Console.CursorTop = 1;
                Console.CursorLeft = 0;

                float t = total_cpu.NextValue() / Environment.ProcessorCount;
                float p = process_cpu.NextValue() / Environment.ProcessorCount;
                Console.WriteLine(String.Format("Total CPU (%) = {0}\t\t\nApp CPU (%) = {1}\t\t\nApp RAM (KB) = {2}",
                    t, p, Process.GetCurrentProcess().WorkingSet64 / (1024) …
Run Code Online (Sandbox Code Playgroud)

.net c# performance performancecounter

5
推荐指数
0
解决办法
718
查看次数

获取总CPU使用率的百分比

我试图获得总CPU使用率的百分比 label1.Caption

我搜索过并找到了这些:

在此输入图像描述

我相信有一种简单的方法就像我们使用RAM一样.

 GlobalMemoryStatus(RamStats);
 Label1.Caption := Format('RAM: %d %%', [RamStats.dwMemoryLoad]);
Run Code Online (Sandbox Code Playgroud)

delphi cpu performancecounter delphi-xe

5
推荐指数
3
解决办法
7435
查看次数

了解CYCLE_ACTIVITY.*Haswell性能监控事件

我试图分析英特尔Haswell的CPU(英特尔®酷睿™i7-4900MQ)与自上而下的微架构分析方法(TMAM),在各章B.1和B.4所述,在执行英特尔®64和IA-32架构优化参考手册.(如果需要,我将B.4中描述的Sandy Bridge公式调整为Haswell Microarchitecture.)

因此,我使用Perf执行性能计数器事件测量.有些结果我不明白:

  1. CPU_CLK_UNHALTED.THREAD_P < CYCLE_ACTIVITY.CYCLES_LDM_PENDING

这仅适用于少数测量,但仍然很奇怪.PMU计数是否会停止CYCLE_ACTIVITY.CYCLES_LDM_PENDING

  1. CYCLE_ACTIVITY.CYCLES_L2_PENDING> CYCLE_ACTIVITY.CYCLES_L1D_PENDINGCYCLE_ACTIVITY.STALLS_L2_PENDING>CYCLE_ACTIVITY.STALLS_L1D_PENDING

这适用于所有测量.当L1D高速缓存未命中时,负载会转移到L2高速缓存,对吧?因此早先错过L2的负载也错过了L1.这里没有计算L1指令高速缓存,但是它的大小*_L2_PENDING是100倍甚至1000倍*_L1D_PENDING,可能不是这样.是否分别以某种方式测量了档位/周期?但是有这个公式:

%L2_Bound = (CYCLE_ACTIVITY.STALLS_L1D_PENDING - CYCLE_ACTIVITY.STALLS_L2_PENDING) / CLOCKS

因此CYCLE_ACTIVITY.STALLS_L2_PENDING< CYCLE_ACTIVITY.STALLS_L1D_PENDING假定(公式的结果必须为正).(这个公式的另一个原因是它可能应该CYCLES代替STALLS.但是这不能解决上面描述的问题.)那么如何解释呢?

编辑:我的操作系统:Ubuntu 14.04.3 LTS,内核:3.13.0-65-通用x86_64,性能版本:3.13.11-ckt26

intel performancecounter cpu-architecture cpu-cache perf

5
推荐指数
1
解决办法
635
查看次数

OMS逻辑磁盘性能计数器不是现有磁盘实例名称

我们使用Azure OMS来监控许多内部部署服务器.

使用LogicalDisk(*)\%Free Space性能计数器时,有一些不存在的instanceNames,例如HarddiskVolume170,HarddiskVolume89,...

检查服务器上的perfmon时,我看到3个可用空间性能计数器的逻辑磁盘实例.

  1. C:
  2. HarddiskVolume1
  3. _总

PerformanceCounterOnServer

在检查OMS日志时,显然还有其他一些实例.如果您检查计数,他们在有限的时间内处于活动状态.

OMSLogsCounters

这些其他实例名称是什么?这些临时逻辑磁盘是否会产生?我想弄清楚这些实例是什么.

Thx提前!

recovery disk performancecounter azure azure-log-analytics

5
推荐指数
1
解决办法
191
查看次数

角度性能跟踪

跟踪Angular应用程序性能的最佳和推荐方法是什么?我可以使用许多其他可用的技术/ api,如performance.now来跟踪和谷歌分析/应用程序洞察力,以发送自定义性能计数器.

但我的问题是,为此目的,我们在Angular中内置了一些内容,还是推荐了第三方模块/库来帮助跟踪角度应用程序的性能?

performancecounter page-load-time angular

5
推荐指数
0
解决办法
297
查看次数