您的位置:首页 > 编程语言 > Java开发

JAVA控制CPU占用率(编程之美有感)(一)

2017-07-21 14:17 162 查看



JAVA控制CPU占用率(编程之美有感)(一)

 

自从看完编程之美的第一篇问题分析,内心十分触动:这是什么鬼?还能这样玩?之前对CPU的占用率只局限于:
“卧槽,我内存满了,电脑卡死了”。
“擦!死循环了,这破代码!”。
“这破游戏这么占内存啊!”。
从了解了编程之美的第一节就感觉到了编程之美的美之所在,将天下之物为我所控,Everything is Object,Object is me。当然这只是一个我玩笑,只是表达我对java的强悍又一认识。
好了闲话少说,下面进入正题。
在编程之美中对系统CPU占用率的分析简直不能再深入,由浅开始,从电脑的CPU内存比的含义开始入手,到如何控制电脑CPU的内存占用率为50%,到动态获取每个电脑的运行内存,以及最后如何让电脑画出一个优美的正弦曲线,都有很深入的分析,看的我触动很大,遍生出了自己去尝试的想法。下面是我自己的实践历程。
打开心爱的Eclipse之后新建了一个Java Project,开始尝试,书上的代码开始很简单,也很容易理解,就是控制下系统的“busy”,和“idle”,那就写下如下代码(假设busy和idle时间为),假设忙闲的时间为5ms,可以用for一直在死循环中,5ms后退出。

public static void main(String[] args) throws InterruptedException {

long busyTime = 5;
Thread th = Thread.currentThread();
long nowSys = System.currentTimeMillis();
while(true){
nowSys = System.currentTimeMillis();
while((System.currentTimeMillis()-nowSys)<=busyTime){

}
th.sleep(5);
}
}










后来发现,马丹我自己电脑有4个CPU,运行起来结果为:
 


不过为了方便测试,我发现有个
 


于是我电脑CPU使用率就变成:
 


卧槽,说好的50%呢?而且我自己的程序控制忙闲比为50%加上系统本身以及各种软件的占用,CPU的使用比应该大于50的啊亲???
放下了手中准备砸电脑的砖头,用生锈的脑子想了一下,因为电脑4核CPU工作交替规律不清楚,可能是电脑任务分配给CPU
A时,BCD为空闲(或者做其余工作)以至于idle比率比较大。



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 编程之美 cpu