【问题标题】:CPU consumption equivalent for harddisk scanningCPU 消耗相当于硬盘扫描
【发布时间】:2010-11-20 23:38:15
【问题描述】:

我希望我的扫描磁盘结构的软件在后台工作,但降低扫描磁盘结构的线程的优先级不起作用。我的意思是,即使你的程序只消耗了 1% 的处理器时间,你仍然会感到计算机在努力工作,甚至会死机。是否可以在Win32中实现相当于CPU消耗的“硬盘时间消耗”

【问题讨论】:

    标签: performance winapi multithreading cpu tps


    【解决方案1】:

    从 Vista 开始,您可以降低 IO 优先级,这与 CPU 优先级是分开的。 http://msdn.microsoft.com/en-us/library/ms686219(VS.85).aspx

    SetPriorityClass(GetCurrentProcess(), PROCESS_MODE_BACKGROUND_BEGIN)
    

    对于 XP、2003 和更早版本,您必须找到其他方法来限制磁盘活动,例如经常使用 Sleep()。

    【讨论】:

      【解决方案2】:

      磁盘访问通常通过每秒几个不同的指标传输(可以分解为读取/写入)和每秒读取或写入的数据来衡量。如果您想限制磁盘扫描应用程序的影响,一种方法是跟踪这些指标中的一个(或两个),确定一个合理的上限,并定期让您的线程休眠一段时间。除了以最透明、最间接的方式外,您对 CPU 调度所做的任何事情都无法有效地完成这项任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-19
        • 1970-01-01
        • 1970-01-01
        • 2018-10-22
        • 2015-05-18
        • 2012-01-26
        相关资源
        最近更新 更多