我有一个机器人模拟程序可以运行很多次,以便收集统计数据。特别是,我想使用1,2,...,10个机器人来运行仿真,并且每个机器人必须运行30次,因此我想通过main args传递所需数量的机器人。

由于模拟非常占用内存,因此我想依次运行它们(否则很有可能发生OutOfMemory Exception)。我在Java / Eclipse中工作,在运行配置下,可以指定要传递给程序的参数,就好像它是由Shell调用的一样,但是我还没有找到使过程自动化的方法。

简而言之,我想做的是以下几点:

for i=1 to 10:
  for j=1 to 30:
    run simulation_instance(i)


程序的每次运行都必须独立。我尝试使用Launch Group Option,但是它的可配置性太差了。

您是否还有其他选择?

最佳答案

在Eclipse中,有一种使用Eclipse EASE的方法。这是非常新的,仍在孵化中。但是,它允许您完全按照自己的描述进行操作。

基本步骤是安装Eclipse EASE,然后编写一些类似于以下内容的javascript:

// load the Launch module
loadModule("/System/Launch")

// some logic for loops/etc
for (i = 0; i < 30; i++) {
    l = launch("name of launch configuration")
    while (!prepare.isTerminated()) {
        // do something to wait like java.lang.Thread.sleep(1)
    }
}


*截至2015年10月,EASE目前正在开发中,直到下一个发行版可以访问新的启动模块,您都需要从git中获取EASE。

有关更多详细信息,请参见:


[Bug 478397] Contribution of module for launch and debug
Launching with EASE

10-07 16:28
查看更多