我有一个机器人模拟程序可以运行很多次,以便收集统计数据。特别是,我想使用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