我最近使用 JVisualVM 分析了一些代码,发现一个特定的方法占用了大量的执行时间,包括经常调用和执行时间缓慢。该方法由一大块 if 语句组成,如下所示:(在实际方法中大约有 30 个)
EcState c = candidate;
if (waypoints.size() > 0)
{
EcState state = defaultDestination();
for (EcState s : waypoints)
{
state.union(s);
}
state.union(this);
return state.isSatisfied(candidate);
}
if (c.var1 < var1)
return false;
if (c.var2 < var2)
return false;
if (c.var3 < var3)
return false;
if (c.var4 < var4)
return false;
if ((!c.var5) & var5)
return false;
if ((!c.var6) & var6)
return false;
if ((!c.var7) & var7)
return false;
if ((!c.var8) & var8)
return false;
if ((!c.var9) & var9)
return false;
return true;
有没有更好的方法来编写这些 if 语句,或者我应该寻找其他地方来提高效率?
编辑:该计划使用进化科学来开发达到给定结果的途径。具体来说,为星际争霸 II 建立订单。此方法检查特定进化是否满足给定结果的条件。