The ONE 运行

The ONE 命令行cmd 运行: ./one.bat [-b runcount] [conf-files]

  1. 不带任何参数(./one.bat)
    使用默认配置文件(default_settings.txt),图形窗口运行一次

  2. 带参数(./one.bat [-b runcount] )
    -b 表示批量运行,runcount表示运行次数,使用默认配置文件 如果配置文件中变量是不变的,则生成的报告文件会复写。

  3. 带参数(./one.bat [-b runcount] [conf-files] ) conf-files 表示自定义配置文件,针对相同的值设定,会覆盖默认配置文件default_settings.txt中设定的值。结合批量运行可以一次运行得到想要的对比。
    例如可以设定Group.route为: Group.router
    =[EpidemicRouter;DirectDeliveryRouter;FirstContactRouter;SprayAndWaitRouter;ProphetRouter]
    就可以考量在其他条件不变的情况下,不同路由方法的性能差异

  4. 运行中遇到的疑问:自定义了配置文件,想通过设定变量一次运行多个对比。 例如设定路由方法、缓存大小、网络规模(节点个数)等。但在运行中发现,路由方法、缓存大小可以一次性设定,运行可以出正确数目的报告文件;但网络规模出现了问题,因为后边设定消息产生模式时,消息产生节点牵涉到节点编号,这样节点数目在一次运行中只能使用一个数值,否则运行会因为找不到相应的节点而报错。不知道自己这样的理解是不是正确?有同样研究的可以讨论。
    又遇到了新的问题:尝试运行的时候设置无线缓冲区,查找资料,提供的解决方式是:因为程序中有对buffersize的初始化(一个很大的值),所以只需要在配置文件中将对buffersize的赋值部分删除或注释掉。但在运行时,提示找不到关于Group.bufferSize的设置,不知道原因是什么,所以还是采用设置成一个很大值的方法更靠谱。

  5. 运行ProphetRouter遇到的问题:报错如下
    Running simulation ‘default_scenario-ProphetRouter’ Exception in thread “main” java.lang.IllegalArgumentException: Comparison method
    violates its general contract!
    at java.util.TimSort.mergeHi(Unknown Source)
    at java.util.TimSort.mergeAt(Unknown Source)
    at java.util.TimSort.mergeForceCollapse(Unknown Source)
    at java.util.TimSort.sort(Unknown Source)
    at java.util.Arrays.sort(Unknown Source)
    at java.util.ArrayList.sort(Unknown Source)
    at java.util.Collections.sort(Unknown Source)
    at routing.ProphetRouter.tryOtherMessages(ProphetRouter.java:241)
    at routing.ProphetRouter.update(ProphetRouter.java:201)
    at core.DTNHost.update(DTNHost.java:330)
    at core.World.updateHosts(World.java:217)
    at core.World.update(World.java:186)
    at ui.DTNSimTextUI.runSim(DTNSimTextUI.java:29)
    at ui.DTNSimUI.start(DTNSimUI.java:77)
    at core.DTNSim.main(DTNSim.java:85) 去查找了一下,说是因为高版本的jdk和低版本jdk对于Comparable接口的实现不同,导致抛出异常。提供两种解决方法:
    1、在主函数,即main函数中加入一行代码:System.setProperty(“java.util.Arrays.useLegacyMergeSort”, “true”);
    2、设置JVM参数-Djava.util.Arrays.useLegacyMergeSort=true来兼容JDK6的代码。
    我是通过第一种方法解决的,第二种方法不知道如何操作,感兴趣的可以参考操作
    有疑问的地方:在前边的运行中并没有出现ProphetRouter抛异常的情况,不知道为什么突然就出现问题了,难道这个还是概率性的?

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值