【发布时间】:2011-07-24 00:47:40
【问题描述】:
我有一个使用提供者模式的应用程序。应用程序通过调用应用程序定义的接口来利用提供程序实现。
我目前正在研究如何围绕接口调用优化我的应用程序。
我可以将我的应用程序的复杂性限制在以下范围内:
- 我只需要在启动时动态加载一次实现
- 我在任何时候都只需要一个提供程序实现,用于应用程序实例的一组特定接口。
我很感激人们付诸实践的任何策略:
- 减少接口调用
- 一般直接调用接口实现类的任何技巧。
- 各种方法可以更好地利用任何编译器优化。
谢谢!
【问题讨论】:
-
我首先要引用 Donald Knuth:“过早的优化是万恶之源”。现在的问题。你真的需要这样的优化吗?我正在研究接口调用如何在不同的 JVM 中工作(这是我文凭的一部分),我可以说通常没有必要优化/减少它们。所以如果你想优化你的应用,首先要找到真正的瓶颈。
-
我同意 xappymah。他必须运行什么样的应用程序才能调用方法的开销导致明显的性能损失?!
-
我同意关于过早优化的说明。我的标准做法是用简洁的设计构建一些东西,然后优先优化瓶颈,在常量之前关注算法。我实际上正在考虑构建一个事务性内容存储引擎(所以称它为应用程序并不是很准确)。有一个类似的系统是用 C 实现的。这个问题实际上是我正在思考的更大问题的一部分:我是否应该用 C 或 C++ 而不是 Java 来实现它。
标签: java performance optimization interface design-patterns