none
Windwos下有可以获取磁盘IO使用率的API吗 RRS feed

  • 问题

  • 大家好,新手请教一个问题

    Windwos下有可以获取磁盘IO使用率的API吗?我只知道有获取进程IO次数及字节数的,也没有IO执行的时间,我想知道IO执行时间怎么做呢?还有 GetSystimes 为什么没有iowait时间?哪个API可以得到iowait的时间呢?

    2014年11月13日 1:11

全部回复

  • 你可以用 PerformanceCounter Class,

    http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter.aspx


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆標示為解答以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to clickMark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2014年11月13日 1:39
  • 首先非常感谢你的回答,这个要用C++来做吧?用C语言可以吗?还有,有可以做到的API吗?我想用C语言对Windows做个监控靠谱吗?我想对Windows系统做个监控用什么方式最好呢。
    2014年11月13日 1:55
  • PerformanceCounter中貌似也没有这个Cpu的iowait时间。。。

    2014年11月13日 2:27
  • .NET的Library話,只有C++, VB, C#可以呼叫吧。

    PerformanceCounter cpuCounter;
    PerformanceCounter ramCounter;
    
    cpuCounter = new PerformanceCounter();
    
    cpuCounter.CategoryName = "Processor";
    cpuCounter.CounterName = "% Processor Time";
    cpuCounter.InstanceName = "_Total";
    
    ramCounter = new PerformanceCounter("Memory", "Available MBytes");
    
    public string getCurrentCpuUsage(){
                cpuCounter.NextValue()+"%";
    }
    
    public string getAvailableRAM(){
                ramCounter.NextValue()+"MB";
    }


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆標示為解答以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to clickMark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2014年11月13日 2:41