讓CPU佔用率畫出正弦曲線

來源:互聯網
上載者:User

都說電腦編程乏味,可是好多程式員卻玩地津津有味。電腦的世界什麼都可以用來做為程式員的遊戲,比如CPU。下面就讓我們來讓Windows下的工作管理員聽我們指揮,畫出完美的正弦曲線吧。

 

思路:

0、目測windows下工作管理員重新整理頻率為1s,每一次重新整理的CPU佔用率其實就是這一時間段的 忙碌時間 / 全部時。

1、用迴圈和sleep方法來實現任一值的CPU佔用率。

2、既然要畫正弦曲線,之前先用兩個數組busyTime[]和idleTime[]確定好迴圈與sleep時間。

 

注意:

1、假設系統當前只有當前程式運行

2、雙核系統下運行一個死迴圈其中一個CPU佔用率100%,另一個無影響

 

源碼:

#include "stdafx.h"<br />#include "windows.h"<br />#include "math.h"</p><p>//C++ code to make task manager generate sine graph<br />const double SPLIT = 0.01;<br />const int COUNT = 200;<br />const double PI = 3.14159265;<br />const int INTERVAL = 300;</p><p>int _tmain(int argc, _TCHAR* argv[])<br />{<br />DWORD busySpan[COUNT]; //array of busy times<br />DWORD idleSpan[COUNT]; //array of idle times<br />int half = INTERVAL / 2;<br />double radian = 0.0;<br />for(int i=0;i<COUNT;i++){<br />busySpan[i] = (DWORD)(half+(sin(PI*radian)*half));<br />idleSpan[i] = INTERVAL - busySpan[i];<br />radian += SPLIT;<br />}<br />DWORD startTime = 0;<br />int j = 0;<br />while(true){<br />j = j%COUNT;<br />startTime = GetTickCount();<br />while((GetTickCount()-startTime)<=busySpan[j])<br />;<br />Sleep(idleSpan[j]);<br />j++;<br />}<br />return 0;<br />}<br />

 

結果:

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.