我最近使用 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; …Run Code Online (Sandbox Code Playgroud)