Java反射:为什么它如此慢?
- 论坛
- Java反射:为什么它如此慢?
8 浏览
Java反射:为什么它如此慢?
我一直以来都避免使用Java反射,仅仅是因为它被认为执行速度慢。在我当前项目的设计中,如果能够使用反射,我的代码将更加可读和优雅,所以我决定尝试一下。
我简直惊讶于它的不同之处,有时候运行时间几乎慢了100倍。即使在这个简单的例子中,只是实例化一个空类,这也是难以置信的。
class B { } public class Test { public static long timeDiff(long old) { return System.currentTimeMillis() - old; } public static void main(String args[]) throws Exception { long numTrials = (long) Math.pow(10, 7); long millis; millis = System.currentTimeMillis(); for (int i=0; ic = B.class; for (int i=0; i
所以我的问题是:
- 为什么会这么慢?我做错了什么吗?(即使上面的例子也展示了这种差异)。我很难相信它真的比普通实例化慢100倍。
- 有没有其他更好的方法来处理将代码视为数据(请记住我现在只能使用Java)