测量Linux进程运行时间和占用内存的方法

1.运行时间

time ./ns xxx.tcl

下面是在我机器上ls的测量结果:

fang@ns-serv2:~/ns-allinone-2.31$ time ls
bin     include        lib       ns-2.31    README     tclcl       xgraph-12.1
cweb    install        man       otcl       sgb        tclcl-1.19 zlib-1.2.3
gt-itm INSTALL.WIN32 nam-1.13 otcl-1.13 tcl8.4.14 tk8.4.14

real    0m0.003s
user    0m0.002s
sys     0m0.001s

2.占用内存

基本方法是检查/proc/$PROCESS_PID/status里的内容,在网上找 了找, 修改了别人的代码:

#!/bin/sh

USAGE="Usage: $0 processName"

if [ $# -ne 1 ]; then
   echo $USAGE
   exit 1
fi

# In case the monitored process has not yet started
# keep searching until its PID is found
PROCESS_PID=""
while :
do
   PROCESS_PID=`pidof $1`

   if [ "$PROCESS_PID.X" != ".X" ]; then
      break
   fi
done

LOG_FILE="memusage.log"

echo "ElapsedTime,VmSize,VmRSS" > $LOG_FILE

ELAPSED_TIME=`date +%H:%M:%S:%N`
PERIOD=1        # 检查间隔,单位为秒

while :
do
if [ -d /proc/$PROCESS_PID ] ; then
   VM_SIZE=`awk '/VmSize/ {print $2}' < /proc/$PROCESS_PID/status`
   if [ "$VM_SIZE.X" = ".X" ]; then
      continue
   fi
   VM_RSS=`awk '/VmRSS/ {print $2}' < /proc/$PROCESS_PID/status`
   if [ "$VM_RSS.X" = ".X" ]; then
      continue
   fi

   echo "$ELAPSED_TIME,$VM_SIZE,$VM_RSS" >> $LOG_FILE
   sleep $PERIOD
   VM_SIZE=""
   VM_RSS=""
   ELAPSED_TIME=`date +%H:%M:%S:%N`
else
echo "$1 is no longer a running process"
exit 0
fi
done


保存为memcheck, 然后chmod 755 memcheck改变其可执行属性。

首先运行./memcheck ns
接着启动某个模拟进程 ./ns xxx.tcl
运行完了ns会自动退出,memcheck也会退出,只要查看memusage.log内容即可。

给出 我运行的例子:



putty窗口1:fang@ns-serv2:~$ ./memcheck ns
等待...


putty 窗口2:fang@ns-serv2:~/ns-allinone-2.31/ns-2.31$ ./ns tcl/ex/simple-wireless.tcl
num_nodes is set 2
warning: Please use -channel as shown in tcl/ex/wireless-mitf.tcl
INITIALIZE THE LIST xListHead
Starting Simulation...
channel.cc:sendUp - Calc highestAntennaZ_ and distCST_
highestAntennaZ_ = 1.5, distCST_ = 550.0
SORTING LISTS ...DONE!
NS EXITING...

putty窗口 1:fang@ns-serv2:~$ ./memcheck ns
ns is no longer a running process


putty 窗口1:fang@ns-serv2:~$ cat memusage.log
ElapsedTime,VmSize,VmRSS
00:25:47:094364000,11468,6232

单 位为kB

按照 这里的解释

任务虚拟地址空间的大小 VmSize
应用程序正在使用的物理内存的大小 VmRSS

come from:http://www.netemu.cn/bencandy.php?id=209

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/90618/viewspace-664120/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/90618/viewspace-664120/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值