今天突然想起原來看用cpu使用率曲線畫正弦波,於是打算換個思路用記憶體佔用率畫正弦波形。
主要用到malloc函式和free函式來操作記憶體。
畢竟我不是acmer所以就中規中矩的寫。
首先實現矩形波。
首先找找思路,先寫函式介面,這是乙個很好的程式設計習慣。
那麼就:
int occupy_mbyte( int size,constsize是分配空間大小,單位是m,這個引數可以調整;delay_time是每分配1m的延時,這樣可以調整波形的胖瘦,wait_time是每次分配完波形的持續時間,這個引數在正弦波的時候有用,在產生正弦波的時候設定為0就可以了,因為正弦波的變化本身就提供了持續時間。int delay_time,const
int wait_time)
然後寫主函式呼叫:
int這樣的主函式應該能產生脈寬10s,占空比50%的矩形波。main()
else
}return0;
}
接下來就要實現occupy_mbyte函式了
int occupy_mbyte( int size,const其中p陣列是定義為全域性陣列int delay_time,const
intwait_time)
}sleep(wait_time);
for( i=0;i1024;i++)
}
int *p[1024 * 1024] = ;這個陣列每個單元儲存malloc分配的乙個1024b也就是1k的記憶體單元的指標,那麼整個陣列就可以管理1g的記憶體分配。
我們試著執行一下看看結果。
呵呵,ok!
下來我們要用一用math標頭檔案裡面的三角函式函式了..
嗯,夜深了,不詳細寫了,貼結果了。只是需要注意的地方就是記憶體的管理了。我的結果其實有些問題的,看波形就能看出來。。
用任務管理器畫CPU正弦曲線
這個最初是在microsoft的 程式設計之美 中看到的,用你的程式來控制cpu的使用率。首先是要求寫乙個用來實現cpu使用率為50 程式。這個還是很好實現的,只要讓你的程式忙的時間課空閒時間對半就可以了。這裡主要要用到兩個函式 gettickcount以及sleep。gettickcount函式據...
win32畫正弦曲線
include include 數學函式 include c 格式化字串需要 using namespace std lresult callback mywndproc hwnd hwnd,uint umsg,wparam wparam,lparam lparam int winapi winma...
linux CPU 畫正弦曲線 程式設計之美
搗鼓了一下,畫成了這個熊樣子,算是蒙混過關了吧。linux下面用gettimeofday函式獲得系統精確時間,如果系統支援,可以精確到us。interval是取樣間隔,算出第i個間隔裡面對應cpu繁忙 busy 的時間和空閒 idle 的時間,也就是 busy i cpu應該的使用率 interva...