担心我的web应用程序的性能,我想知道哪些“if / else”或switch语句对性能更好?
发布于 2018-03-01 09:34:10
这是微观优化和过早优化,这是邪恶的。而是担心代码的可读性和可维护性。如果有两个以上的if/else
块粘在一起或者其大小不可预测,那么您可能会高度考虑一个switch
声明。
或者,您也可以抓住多态。先创建一些界面:
public interface Action {
void execute(String input);
}
并掌握所有的实现Map
。您可以静态或动态地执行此操作:
Map<String, Action> actions = new HashMap<String, Action>();
最后替换if/else
或switch
像这样的东西(留下像nullpointers琐碎的检查):
actions.get(name).execute(input);
它可能比微if/else
或小switch
,但代码至少可以更好地维护。
在讨论Web应用程序时,可以使用HttpServletRequest#getPathInfo()
操作键(最终编写一些代码将pathinfo的最后一部分拆分为循环,直到找到操作为止)。你可以在这里找到类似的答案:
如果您一般担心Java EE Web应用程序的性能,那么您可能会发现这篇文章也很有用。还有其他一些领域比仅对微型原始Java代码进行优化提供了更多的性能增益。
发布于 2018-03-01 10:05:24
我完全同意这样的观点,即不成熟的优化是可以避免的。
但是,Java VM确实具有可用于switch()的特殊字节码。
请参阅WM规格(lookupswitch和tableswitch)
如果代码是性能CPU图的一部分,那么可能会有一些性能提升。
https://stackoverflow.com/questions/-100003538
复制相似问题