• 控制CPU曲线引发的感想


     

      前两天因为评论了一片文章,谁想竟然引出了“交流事件”,很是感觉憋屈!话说,某天我在园子里面游荡看看新的文章。当看到那个稿子的题目的时候,猛一看感觉挺高深的,就想仔细研究一下。

           一直觉得操作系统是程序之美的最强体现,文章“CPU曲线控制”的标题给人一种错觉,可能会涉及操作系统中对协调多核处理器发挥最强性能的问题。是每一个程序员都会感兴趣的话题。孰知看完之后有种“鸡肋”的感觉,文章所阐述的东西没有什么实际的使用意义。只是为了显示而显示,为了博客而博客,所以就有了“没有实际意义”评论了。可能作者一直都在期待赞美、崇拜的声音,我不和谐的声音地出现显得的那么刺头。理所应当的当成了“吃不着葡萄”的人,进而就是捍卫自己的文章是“高质量”的,怎么体现自己的高质量呢,首先是比你高明的人写的就是高质量。那么怎么显示自己的高明呢,首先就是语言上的贬低,那些影响园子氛围,比如“世界观比较特殊”、“小学生”、“小学语老师”、“是否有资格”等等之类的词语出现了。我郁闷啊!难道水平不如你的人只能赞美你,用一些很恶心的话恭维就对了吗?人们对稿子提出质疑是对稿子质量的一种认可,不论谁对谁错、都是一种提高,文章存在就有很重要的意义。在别人提出质疑后,恼羞成怒,进而人身攻击,我觉得很无奈,同时也对作者行为体现出的素质深深的鄙视。

           其实这是件小事情本不必如此当真,别人的素质怎么样是别人的事情。我只要决定是否鄙视就可以了,与我自身何干。问题是触景生情啊,在我和作者以笔“交流”的时候想到了一件小事情。前两天单位面试了几个人,在刚拿到简历的时候,看到一分很特别的简历〔当时还没有面试〕,一个今年要毕业的大学生,在他的技能描述中基本上罗列了所有的.net平台涉及的开发技术、框架,还有一大堆的头衔、xxx专家团队成员,xxx站长,xxx团队。当时很好奇,难道碰到天才了,应该说一个刚毕业的大学生,如果能达到这个程度的话,那这个人的真是前途无量啊。然后就上网看了一下这人的博客、还有那个xx技术站。博客的文章质量确实不错,其中的很多文章很有深度。当时自觉惭愧,因为好几个文章涉及的应用我都说不清楚。然后就是面试。几个问题下来,我感觉自己踏实了一点,为什么呢?因为他一开始给我印象是很强的,强的不像是一大学生。最后是上机,在可以查找资料的前提下,连续换了5个问题,题目的难度是由中等一直降到初级水平,结果居然都是以失败告终。在这说这个例子不是要暗喻什么,或贬低谁,或者抬高谁。只是很不能理解这个现象,在博客上那么多文章,在园子里都可以排进前200了,肯定是发布了很多高质量、高水准的文章,而且很多看文章确实是很白话,不想是整篇的摘抄。即使都是摘的、或者直接从书上拿来贴上,起码也应该知道思路或者基本的实现吧。但是很遗憾,他只是让简历上多了一串头衔,他是为了博客而博客。最后就有了一个问题:写博客写什么?我觉得可能有四种可能。

    1、  传道授业解惑;

    2、  学习生活笔记;

    3、  乐于助人;

    4、  装大尾狼;

    不论出于何种可能,我都很感谢这些作者,他们很伟大!但是如果沾边第4种,我也很直白的告诉他们:你们也很可怜!

          某人也对我博客上几个肤浅的问题作出评价,认为真是太肤浅了,没有资格来学习、质疑别人的东西。但是我觉得有知识没有肤浅之说,就说天气一把抓小小的例子:包括了正则表达式、模拟登录、页面数据分析、数据抓取 正是因为浅显、所有简单易懂。对学习这几点知识的人来说是个典型的例子。 相比于一些文章中,没有任何的技术点的随笔〔先不说文章是不是经过思考理解后自己写出来的〕。我觉得前者更有意义。

          我作为一个做技术的人,一直认为“做技术是很单纯的事情!”,学习的过程就是“学习”、“思考”、“质疑”的过程。虽然现实中我知道自己的想法很理想,我的观点只能代表自己的行为准则,不能奢望别人也这么理想。在那我总是沉默,沉默不是因为无语,不是因为愤怒,而是因为喜悦。喜悦在有限的环境中,又一个人的技术生涯“死去”了。

          最后贴出一段代码,某人已经详细的罗列了代码的实现,有一点我承认,前者“翻译”的内容是现在为止最好的解决思路,但是作者是否经过的深刻的思考,是否真正的理解它美在那。我的技术水平也没有到达多么高深的程度。无法完全颠覆性的整理出别的方案。但是把代码整理了一下贴出,应该也可以说明一个问题:理解意图后,它实现起来很简单

    private void button4_Click(object sender, EventArgs e)
    {
    double busySpan;
    double idleSpan;
    double start ;
    //曲线显示区间
    double interval = 100;
    double radian = 0.0;
    double step=0.01;
    if (MessageBox.Show("现在开始让CPU傻掉吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
    {
    //设置优先级
    System.Threading.Thread.CurrentThread.Priority = System.Threading.ThreadPriority.Highest;
    while (true)
    {
    //曲线值
    busySpan = (double)((interval/2)*(Math.Sin(Math.PI * radian) + 1));
    //得到固定反向的曲线值
    idleSpan=interval - busySpan;
    startTime
    = Environment.TickCount;
    //控制曲线递增
    while ((Environment.TickCount - start) <= busySpan)
    {
    }
    //控制曲线递减
    System.Threading.Thread.Sleep((int)idleSpan);
    radian
    += step;

    }

    }
    }

    执行效果:

      

    至于控制多核的问题,因为环境问题,我还是不用写了,这一段才是这个题目的精华所在。可以说明一定问题了

    作者:邢少
    关于作者:从业至今一直从事软件前沿的分析设计工作,对软件开发过程、项目管理有浓厚的兴趣。如有想法、建议,请多多赐教
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意请保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过 xingshaoxian@163.com 与我联系,非常感谢。
  • 相关阅读:
    Mysql group by语句的优化
    Mysql join语句的优化
    jquery 只读
    【Unity Shaders】Transparency —— 使用渲染队列进行深度排序
    oracle多表查询之内连接,外连接语句总结
    String比较相等的问题探索
    markdown实例
    集合list里存储list,要遍历最底层list的对象元素的遍历方法
    System.out.println(i++); System.out.println(++i);的区别
    windows自动快捷方式
  • 原文地址:https://www.cnblogs.com/xingshao/p/1697059.html
Copyright © 2020-2023  润新知