关于《编程之美》CPU曲线控制例子的探讨

本文探讨了《编程之美》书中关于CPU曲线控制的代码示例,指出书中C#代码可能存在不足,可能导致CPU利用率只能在50%和100%之间波动。作者用C++重写了代码,并讨论了Windows系统的时钟精度限制,揭示了Sleep函数无法提供毫秒级精度的原因。同时,提出了在多核CPU环境下调整线程亲和性的方法。
摘要由CSDN通过智能技术生成
    上个月到福州路“扫”书店,本来想买几本敏捷和TDD的书,确意外发现了《编程之美》这本书。一开始被吸引是因为书名下面的副标题:微软面试。。。。,因为2005年毕业的时候曾有一次失败的微软面试,所以抱着事后看客的心态拿起来翻翻,这一翻就决定立刻买下这本书。从第一章开始,每一章的例子都很吸引我,虽然有一些题目早知道解法,但看到有更巧妙的方法时还是忍不住击节,要是但是面试的时候能先看看这本书就好了,嘿嘿。夸归夸,缺点还是要提的,本书的勘误之多也是出类拔萃的,拿到书时就看到里面夹了一张勘误表,当时没在意,到看的时候就发现不对劲了,上网一查,原来还有一张更长的勘误表,呵呵。

    书中第9页给出了一个能够根据系统性能动态自适应的解法,就是那个MakeUsage()函数,原文代码清单如下:
// C# code
static void MakeUsage(float level)
{
     PerformanceCounter p = new PerformanceCounter("Processor","% Processor Time", "_Total");

     while(true)
     {
          if(p.NextValue() > level)
               System.Threading.Thread.Sleep(10);
     }
}

勘误表中对这个函数也没有修改,只是增加了对p是否有效的判断

 if(p==NULL)
 {
    Retu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吹泡泡的小猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值