看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 想要從linux alike系統中找到系統資源使用狀況 希望得到的正確結果: 知道兩支test程式的記憶體是用狀況 程式跑出來的錯誤結果: rusage中的資源都沒有跑出想像中的結果 兩隻應該相差很多的test程式 甚至還會有使用狀況差不多的情形 還有他的memory單位是byte嗎? 還是page? 有往以前的文章和GOOGLE上找過 但只有得到search /proc/id/stat之類的答案 QQ 謝謝大家~ 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) linux 2.6 有問題的code: (請善用置底文標色功能) //------ get resource program http://nopaste.csie.org/89460 //------ test1 int main(){ int a[100] ; for( int i = 0 ; i < 100 ; ++ i ) a[i] = i*i ; } //------ test2 int main(){ double a[1000000] ; for( int i = 0 ; i < 1000000 ; ++ i ) a[i] = (double)i*(double)i/232323.0 ; } wait4 output: #./my_Rusage ./test1 100000000 100 time used: 0.0008 memory used(idrss isrss):0 0 maxrss ixrss 0 0 minflt majflt 321 321 #./my_Rusage ./test2 100000000 100 time used: 0.0048002 memory used(idrss isrss):0 0 maxrss ixrss 0 0 minflt majflt 1298 1298 getrusage output: #./my_Rusage ./test1 100000000 100 time used: -1.22005e+09 memory used(idrss isrss):-1074389928 -1219883728 maxrss ixrss 134514916 134515184 minflt majflt 134521644 134521644 #./my_Rusage ./test2 100000000 100 time used: -1.21981e+09 memory used(idrss isrss):-1078682952 -1219646160 maxrss ixrss 134514916 134515184 minflt majflt 134521644 134521644 %%%%%% http://linux.die.net/man/2/getrusage //man getrusage linux http://linux.about.com/library/cmd/blcmdl2_wait4.htm //wait4 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.98.148
sunneo:你man了getrusage,但程式怎麼會是用setrlimit 10/13 00:59
redluna:樓上有看我的CODE嗎? wait4和getrusage是用在後面 10/13 01:59
redluna:setrlimit是要限制資源的使用量 10/13 02:00
redluna:BTW code放的是wait4 10/13 02:04
redluna:getrusage的版本應該是同行改成以下 10/13 02:04
redluna:getrusage(child,&result); 10/13 02:05
redluna:放一整天了~先謝謝桑大的關心Q Q 10/13 02:05
sunneo:child ? 不是吧 應該是RUSAGE_CHILDREN 10/15 23:49
sunneo:who:int 是RUSAGE_SELF,RUSAGE_CHILD,RUSAGE_THREAD 10/15 23:51
sunneo:所以getrusage參數弄錯了 才會出現那些資訊 10/16 14:12