• Windows性能计数器应用程序参数设置


    { 
    
    // PerformanceCounter(CategoryName,CounterName,InstanceName) 
    
    performanceNetCounterCategory = newPerformanceCounterCategory("Network Interface"); 
    
    interfaces = performanceNetCounterCategory.GetInstanceNames(); 
    
    int length = interfaces.Length; 
    
    if (length > 0) 
    
    { 
    
    trafficSentCounters = newPerformanceCounter[length]; 
    
    trafficReceivedCounters = newPerformanceCounter[length]; 
    
    } 
    
    for (int i = 0; i < length; i++) 
    
    {

    //初始化PerformanceCounter类的新的只读实例。

    //第一个参数:“ categoryName”-与该性能计数器关联的性能计数器类别(性能对象)的名称。

    //第二个参数:“ CounterName”-性能计数器的名称。

    //第三个参数:“ instanceName”-性能计数器类别实例的名称,如果类别包含单个实例,则为空字符串(“”)。

    trafficReceivedCounters[i] = new PerformanceCounter("Network Interface", "Bytes Sent/sec", interfaces[i]); 
    
    trafficSentCounters[i] =new PerformanceCounter("Network Interface", "Bytes Sent/sec", interfaces[i]); 
    
    }
    //网络接口所有名称的列表 
    
    for (int i = 0; i < length; i++) 
    
    { 
    
    Console.WriteLine("Name netInterface: {0}", performanceNetCounterCategory.GetInstanceNames()[i]); 
    
    } 
    
    } 
    
    public void getProcessorCpuTime() 
    
    { 
    
    float tmp = cpuProcessorTime.NextValue(); 
    
    CPUProcessorTime = (float)(Math.Round((double)tmp, 1)); 
    
    // Environment.ProcessorCount:返回内核总数 
    
    } 
    
    public void getCpuPrivilegedTime() 
    
    { 
    
    float tmp = cpuPrivilegedTime.NextValue(); 
    
    CPUPrivilegedTime = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getCpuinterruptTime() 
    
    { 
    
    float tmp = cpuInterruptTime.NextValue(); 
    
    CPUInterruptTime = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getcpuDPCTime() 
    
    { 
    
    float tmp = cpuDPCTime.NextValue(); 
    
    CPUDPCTime = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getPageFile() 
    
    { 
    
    PageFile = pageFile.NextValue(); 
    
    } 
    
    public void getProcessorQueueLengh() 
    
    { 
    
    ProcessorQueueLengh = processorQueueLengh.NextValue(); 
    
    } 
    
    public void getMemAvailable() 
    
    { 
    
    MEMAvailable = memAvailable.NextValue(); 
    
    } 
    
    public void getMemCommited() 
    
    { 
    
    MEMCommited = memCommited.NextValue() / (1024 * 1024); 
    
    } 
    
    public void getMemCommitLimit() 
    
    { 
    
    MEMCommitLimit = memCommitLimit.NextValue() / (1024 * 1024); 
    
    } 
    
    public void getMemCommitedPerc() 
    
    { 
    
    float tmp = memCommitedPerc.NextValue();

    //返回内存提交限制的值

    MEMCommitedPerc = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getMemPoolPaged() 
    
    { 
    
    float tmp = memPollPaged.NextValue() / (1024 * 1024); 
    
    MEMPoolPaged = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getMemPoolNonPaged() 
    
    { 
    
    float tmp = memPollNonPaged.NextValue() / (1024 * 1024); 
    
    MEMPoolNonPaged = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getMemCachedBytes() 
    
    {

    //返回以MB为单位的已缓存内存的值

    MEMCached = memCached.NextValue() / (1024 * 1024); 
    
    } 
    
    public void getDiskQueueLengh() 
    
    { 
    
    DISCQueueLengh = diskQueueLengh.NextValue(); 
    
    } 
    
    public void getDiskRead() 
    
    { 
    
    float tmp=diskRead.NextValue()/1024; 
    
    DISKRead = (float)(Math.Round((double)tmp,1)); 
    
    } 
    
    public void getDiskWrite() 
    
    { 
    
    float tmp=diskWrite.NextValue()/1024; 
    
    DISKWrite = (float)(Math.Round((double)tmp,1)); // round 1 digit decimal 
    
    } 
    
    public void getDiskAverageTimeRead() 
    
    { 
    
    float tmp = diskAverageTimeRead.NextValue() * 1000; 
    
    DISKAverageTimeRead = (float)(Math.Round((double)tmp, 1)); // round 1 digit decimal 
    
    } 
    
    public void getDiskAverageTimeWrite() 
    
    { 
    
    float tmp = diskAverageTimeWrite.NextValue()*1000; 
    
    DISKAverageTimeWrite = (float)(Math.Round((double)tmp, 1)); // round 1 digit decimal 
    
    } 
    
    public void getDiskTime() 
    
    { 
    
    float tmp = diskTime.NextValue(); 
    
    DISKTime = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getHandleCountCounter() 
    
    { 
    
    HANDLECountCounter = handleCountCounter.NextValue(); 
    
    } 
    
    public void getThreadCount() 
    
    { 
    
    THREADCount = threadCount.NextValue(); 
    
    } 
    
    public void getContentSwitches() 
    
    { 
    
    CONTENTSwitches = (int)Math.Ceiling(contentSwitches.NextValue()); 
    
    } 
    
    public void getsystemCalls() 
    
    { 
    
    SYSTEMCalls = (int)Math.Ceiling(systemCalls.NextValue()); 
    
    } 
    
    public void getCurretTrafficSent() 
    
    { 
    
    int length = interfaces.Length; 
    
    float sendSum = 0.0F; 
    
    for (int i = 0; i < length; i++) 
    
    { 
    
    sendSum += trafficSentCounters[i].NextValue(); 
    
    } 
    
    float tmp = 8 * (sendSum / 1024); 
    
    NetTrafficSend = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getCurretTrafficReceived() 
    
    { 
    
    int length = interfaces.Length; 
    
    float receiveSum = 0.0F; 
    
    for (int i = 0; i < length; i++) 
    
    { 
    
    receiveSum += trafficReceivedCounters[i].NextValue(); 
    
    } 
    
    float tmp = 8 * (receiveSum / 1024); 
    
    NetTrafficReceive = (float)(Math.Round((double)tmp, 1)); 
    
    } 
    
    public void getSampleTime() 
    
    { 
    
    SamplingTime =DateTime.Now; 
    
    } 
    
    }

    Windows性能计数器应用(PART1-4)

    Windows性能计数器应用(PART6)

  • 相关阅读:
    Redis入门--- 五大数据类型 ---String ,List
    Redis入门 --- 安装
    Netty 应用实例-群聊系统,心跳检测机制案例 ,WebSocket 编程实现服务器和客户端长连接
    红锁的实现
    基于Redis实现分布式锁
    基于分布式锁 分布式全局唯一ID
    Netty Java BIO 编程 (一)
    Netty Java NIO 基本介绍Channel 和 buffer (二)
    Java AIO 基本介绍
    SpringBoot 系列教程自动配置选择生效
  • 原文地址:https://www.cnblogs.com/Aldj/p/12416599.html
Copyright © 2020-2023  润新知