• ns3-性能分析


    导入

    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

     

     

     

  • 相关阅读:
    【activemq artemis】消息持久化——文件系统以及jdbc
    【activemq artemis】安全相关配置
    【微信原生支付】服务商模式-小微商户专属接口:小微商户新增对应APPID关联API
    【activemq artemis】新一代ActiveMQ —— Apache ActiveMQ Artemis
    【签名加解密】c# 对XML进行数字签名并且让java验签成功
    自省书!!!!!
    大前端完整学习路线(详解)//转载自csdn:http://blog.csdn.net/u011047006/article/details/52597178
    Javascript学习十
    Javascript学习九
    Javascript学习八
  • 原文地址:https://www.cnblogs.com/zyhe/p/12116882.html
Copyright © 2020-2023  润新知