作者redluna (Occlumen)
看板C_and_CPP
標題[問題] 關於wait4和getrusage
時間Tue Oct 12 18:11:44 2010
遇到的問題: (題意請描述清楚)
想要從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