用記憶體占用曲線畫正弦波

2022-03-14 13:17:20 字數 1724 閱讀 7014

今天突然想起原來看用cpu使用率曲線畫正弦波,於是打算換個思路用記憶體佔用率畫正弦波形。

主要用到malloc函式和free函式來操作記憶體。

畢竟我不是acmer所以就中規中矩的寫。

首先實現矩形波。

首先找找思路,先寫函式介面,這是乙個很好的程式設計習慣。

那麼就:

int occupy_mbyte( int size,const

int delay_time,const

int wait_time)

size是分配空間大小,單位是m,這個引數可以調整;delay_time是每分配1m的延時,這樣可以調整波形的胖瘦,wait_time是每次分配完波形的持續時間,這個引數在正弦波的時候有用,在產生正弦波的時候設定為0就可以了,因為正弦波的變化本身就提供了持續時間。

然後寫主函式呼叫:

int

main()

else

}return0;

}

這樣的主函式應該能產生脈寬10s,占空比50%的矩形波。

接下來就要實現occupy_mbyte函式了

int occupy_mbyte( int size,const

int delay_time,const

intwait_time)

}sleep(wait_time);

for( i=0;i1024;i++)

}

其中p陣列是定義為全域性陣列

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...