Linux環境下C語言模擬內存負載測試

今天用C語言實現一個Memory負載的壓力測試程序.

#include <stdio.h>
                        
 #include <stdlib.h>
 #include <string.h>
                        
 #define PAGE_SZ (1<<12)
                        
 int main() {
     int i;
     int gb = 1; //以GB爲單位分配內存大小
                        
     for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
         void *m = malloc(PAGE_SZ);
         if (!m)
             break;
         memset(m, 0, 1);
     }
     printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
     getchar();
     return 0;
 }

系統當前的內存大小爲1.2G.

wKioL1NLbtGhUzmtAACJ2BlYZoU901.jpg

查看當前系統內存的動態變化狀態,1.2G大約使用了148M左右.

wKiom1NLbxTwAM3XAAKVCzEdv7s545.jpg

編譯程序後執行再觀察,程序中允許分配的內存爲1GBi=1024MBi,發現30s內CPU和內存的負載均達到了最大,監控中看到內存佔用了1.1G,約1.2G的91.8%.


wKioL1NLbwKSps_6AAJiira6dRs361.jpg

這個方法在模擬內存負載時,做壓力測試還是比較有用處的,所以分享一下.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章