我正在编写一个 Java EE 6 Web 应用程序,我注意到使用注入对象与直接创建和使用对象相比,性能会受到显着影响。每个方法调用的开销似乎约为 50 - 60 毫秒。
例如,使用非注入的 150 个方法调用大约需要 500 毫秒,而使用注入的对象 150 个方法调用需要 12,000 - 13,000 毫秒。一个数量级的差异,然后是一些。
这是平常的吗?
我在使用 Weld 处理 CDI 的 JBoss AS 7.1.1 final 上运行。
注入的对象被定义为单例 bean(通过 javax.ejb.Singleton 注释)。这可能是问题的一部分吗?还是只是 Weld 代理导致速度变慢?