首页 > 其他 > 详细

ns3-性能分析

时间:2021-05-30 00:58:49      阅读:34      评论:0      收藏:0      [点我收藏+]

导入

ns3虽然底层都是c++,但是有时候做起仿真来,还是要跑几十个小时,大大延缓了开发速度。

因此,对ns3进行性能分析是十分必要的。

下面,将说明两种性能分析工具gprof和operf,在ns3中的使用。

一、gprof

这个工具在linux中常用。在ns3中配置使用它的步骤:

1:在~/ns-allinone-3.29/ns-3.29下wscript文件插入代码,代码一共有两段,在文件中的位置很好确定。

 1  opt.add_option(--enable-gprof,
 2                    help=(Enable code profiling.),
 3                    action="store_true", default=False,
 4                    dest=enable_gprof)
 5     if Options.options.enable_gprof:
 6         env[GPROF_ENABLED] = True
 7         env.append_value(CCFLAGS, -pg)
 8         env.append_value(CFLAGS, -pg)
 9         env.append_value(CXXFLAGS, -pg)
10         env.append_value(LINKFLAGS, -pg)

 

配置ns3

./waf configure -d optimized --enable-examples --enable-static --enable-gprof

./waf build

如果跳过“ --enable-static”,最终将仅对主程序进行性能分析,而不会对库代码进行性能分析。不过使用该选项,可能导致NS3占用高达25GB的存储空间。

optimized的作用:翻wscript结果看到了编译选项,先跳过这里,知道是个优化编译就行了

运行一个例子

~/ns-allinone-3.29/ns-3.29/example/tcp下的例子tcp-large-transfer.cc,拷到~/ns-allinone-3.29/ns-3.29/scratch目录中,运行以下命令

./waf --run scratch/tcp-large-transfer

例子运行后,在~/ns-allinone-3.29/ns-3.29/下生成文件gmon.out,运行以下命令

gprof build/scratch/tcp-large-transfer gmon.out > analysis.txt

等待约1分钟,得到analysis.txt文件,该文件即为gprof工具测试tcp-large-transfer.cc例子的性能分析报告。

解读性能报告

如何阅读报告:

 

二、operf

在官方的HOWTO use oprofile中提到了如何使用operf进行性能分析。

https://www.nsnam.org/wiki/HOWTO_use_oprofile

 

三、比较

两种性能分析工具,分析的结果怎么样呢,下面运行first.cc,进行对比。

1gprof

 

 

2 operf

 

 

 

ns3-性能分析

原文:https://www.cnblogs.com/zyhe/p/12116882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!