- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用 jhat 分析堆转储时,我观察到创建了许多 DelegatingClassLoader 实例,尽管它们没有在代码中显式调用。我希望这是某种反射优化机制。有人知道细节吗?
最佳答案
是的,这可能是反射优化。
在 Sun JVM 上,对属性和方法的反射访问最初是通过 JNI 调用到 JVM 实现中来执行的。如果 JVM 注意到一个方法或字段被反射访问了很多,它会生成字节码来做同样的事情——它称为“膨胀”的机制。这有一个初始速度命中,但之后运行速度大约快 20 倍。如果您进行大量反射(reflection),将是一个巨大的胜利。
该字节码存在于由 DelegatingClassLoader 实例创建的类中。请密切注意:这些类可能会对 permgen 空间施加压力,并导致可怕的“java.lang.OutOfMemoryError: PermGen space”失败。如果这是一个问题,您可以通过将系统属性 sun.reflect.inflationThreshold 设置为 0(零)来关闭通货膨胀。
关于reflection - Sun JVM 在运行时创建 sun.reflect.DelegatingClassLoader 的实例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6505274/
From this question ,我发现不可能从 sun.misc.DelegatingClassLoader 查找类,即在其自己的类加载器上查找类,例如 Class accessor = ..
在使用 jhat 分析堆转储时,我观察到创建了许多 DelegatingClassLoader 实例,尽管它们没有在代码中显式调用。我希望这是某种反射优化机制。有人知道细节吗? 最佳答案 是的,这可能
我是一名优秀的程序员,十分优秀!