[問題] 關於wait4和getrusage

看板C_and_CPP作者 (Occlumen)時間13年前 (2010/10/12 18:11), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 想要從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

10/13 00:59, , 1F
你man了getrusage,但程式怎麼會是用setrlimit
10/13 00:59, 1F

10/13 01:59, , 2F
樓上有看我的CODE嗎? wait4和getrusage是用在後面
10/13 01:59, 2F

10/13 02:00, , 3F
setrlimit是要限制資源的使用量
10/13 02:00, 3F

10/13 02:04, , 4F
BTW code放的是wait4
10/13 02:04, 4F

10/13 02:04, , 5F
getrusage的版本應該是同行改成以下
10/13 02:04, 5F

10/13 02:05, , 6F
getrusage(child,&result);
10/13 02:05, 6F

10/13 02:05, , 7F
放一整天了~先謝謝桑大的關心Q Q
10/13 02:05, 7F

10/15 23:49, , 8F
child ? 不是吧 應該是RUSAGE_CHILDREN
10/15 23:49, 8F

10/15 23:51, , 9F
who:int 是RUSAGE_SELF,RUSAGE_CHILD,RUSAGE_THREAD
10/15 23:51, 9F

10/16 14:12, , 10F
所以getrusage參數弄錯了 才會出現那些資訊
10/16 14:12, 10F
文章代碼(AID): #1Cj3HY-W (C_and_CPP)