仿真时,通常需要测量一个变量对另一个变量的影响,比如包数量对传输时间的影响,这就需要让程序根据不同的参数值依次运行。为了使结果更加客观,让同一个程序执行多次,取其平均值。本文给出一个实例,让程序在不同参数值下运行多次(可以挂机运行),得到数据,并绘成图。
1. Python源代码
我本意是测试传输n个数据包所需时间,这里只是简单测试程序运行的总时间,显然不准确。据说写脚本分析trace file(后缀名为.tr)才是常用方法,求指点。
for maxForward in range(2, 1000, 50):
count = 0
for i in range(0, 10, 1):
start = time.time()
os.system('./waf --run "scratch/AliceBob_class_main --flag=1 --maxForward=%d"' %(maxForward))
end = time.time()
elapsed = (end - start)
count += elapsed
count = count/10
print >> open("result_AliceBob_XOR_100M_2.txt", 'a'), maxForward, count
第一行类似于C语言for(maxForward=2; maxForward<1000; maxForward+=50),第二层for循环让程序运行10次。函数os.system运行程序(类似于命令行运行的命令),并传入参数。
2. 得到数据
用命令python python_Ali