Java 条件语句按频率排序还是按计算时间排序?
假设在IF-ELSE语句中有100个不同的条件Java 条件语句按频率排序还是按计算时间排序?,java,performance,logic,Java,Performance,Logic,假设在IF-ELSE语句中有100个不同的条件 if((boolean = methodA)){ ... } else((boolean = methodZ)){ ... } 从逻辑上讲,我认为最不可能的条件应该是最后一个条件(使用methodZ的条件),最频繁的条件应该是第一个条件(methodA) 然后我想,“如果methodA需要很多时间计算怎么办?”。methodZ将花费比到达目的地更多的时间,即使它是最不频繁的。我应该按计算时间排序条件吗?或者仅仅根据频率来排序 解决
if((boolean = methodA)){
...
}
else((boolean = methodZ)){
...
}
从逻辑上讲,我认为最不可能的条件应该是最后一个条件(使用methodZ的条件),最频繁的条件应该是第一个条件(methodA)
然后我想,“如果methodA需要很多时间计算怎么办?”。methodZ将花费比到达目的地更多的时间,即使它是最不频繁的。我应该按计算时间排序条件吗?或者仅仅根据频率来排序
解决这一困境的好办法是什么
假设在IF-ELSE语句中有100个不同的条件
如果您在实际应用程序中碰巧做到了这一点,那么您将面临一个比测量评估条件的时间更重要的巨大设计问题
我应该按计算时间排序条件吗?或者仅仅根据频率来排序
这个问题没有确切的答案。要做的第一件事就是编写条件,然后在应用程序中使用,并评估某些条件是否真的是代码中的问题。如果您发现其中一个CPU使用率很高,那么请启动特定的分析以增强它
假设在IF-ELSE语句中有100个不同的条件
如果您在实际应用程序中碰巧做到了这一点,那么您将面临一个比测量评估条件的时间更重要的巨大设计问题
我应该按计算时间排序条件吗?或者仅仅根据频率来排序
这个问题没有确切的答案。要做的第一件事就是编写条件,然后在应用程序中使用,并评估某些条件是否真的是代码中的问题。如果你发现其中一个CPU使用率很高,那么就开始具体的分析以提高它。你需要找到平衡点。要计算的时间不仅针对方法,而且针对整个事务。如果methodZ在methodA的1/100时间内完成,并且methodZ的频率小于methodA的100次,则应将其移到顶部。您需要取得平衡。要计算的时间不仅针对方法,而且针对整个事务。如果methodZ在methodA的1/100时间内完成,并且methodZ的频率小于methodA的100次,则应将其移到顶部。如果所有条件的评估恰好需要10毫秒,则无需担心=\。。。除非可用时间少于10毫秒。;)如果所有条件的评估恰好需要10毫秒,那么就没有什么可担心的了=\。。。除非可用时间少于10毫秒。;)