之前在<编程之美>的书中看到有关控制任务管理器中CPU占用率的文章。感觉很意思。一直想自己做一次。但我在C语言方面的水平有限。因此不能直接用找到代码实践这个过程。
不过最近经常在用javascript,所以就想到用javascript实现一下。结果还不错。代码在下面,只要在桌面上建一个html文件,把代码放进去,用浏览器打开就可以看了。因为我用的机器是双核的,所以效果不太好。希望有高手帮我改进一下这个程序。
- <html>
- <head>
- <script type="text/javascript">
- var SPLIT = 0.01;
- var COUNT = 200;
- var PI = 3.14159265;
- var INTERVAL = 150;
- var busySpan=new Array(); //array of busy times
- var idleSpan=new Array(); //array of idle times
- function showmsg()
- {
- var half=INTERVAL/2;
- var radian = 0.0;
- var i=0;
- for(i = 0;i<COUNT; i++)
- {
- busySpan[i] = (half + (Math.sin(PI * radian) * half));
- idleSpan[i] = INTERVAL - busySpan[i];
- radian+=SPLIT;
- }
- cystime();
- return 0;
- }
- var j=0;var flag=0;
- function cystime()
- {
- j=j%COUNT;
- //busy
- flag=0;
- var nowobj=new Date();
- var nowms=nowobj.getTime();
- var newms=nowms;
- while((newms-nowms)<busySpan[j])
- { nowobj=new Date();newms=nowobj.getTime(); }
- //idle
- var idlt=setTimeout('cystime()',idleSpan[j]);
- j++;
- }
- </script>
- </head>
- <body >
- <input onclick="showmsg()" type="button" value="开始"/>
- </body>
- </html>