【发布时间】:2014-03-14 06:31:49
【问题描述】:
我可以在我的应用程序中看到加载的类的数量不断增加as discussed here。
在使用 yourkit 和堆栈溢出社区的帮助时,我能够得出结论,类的增加是因为反射类被动态创建,如下所示:
- GeneratedConstructorAccessorXX
- GeneratedMethodAccessorXX
-
GeneratedSerializationConstructorAccessorXX
XX 是某个数字。
根据我的知识以及在googling 之后我了解到的情况,这些是反射用来访问存储在内存中的对象信息的运行时代理。这些访问器被缓存,因此它们不必每次都重新生成。这些类对象每个类加载器都是单例的,因此对于给定类的每个类加载器,我们只有一个生成的访问器实例。 如果是这种情况,为什么我在运行重复测试时看到加载的类增加了。
更新* 在进一步的分析中,我观察到负载的增加具体是因为 GeneratedSerializationConstructorAccessor。
【问题讨论】:
标签: java performance memory-leaks garbage-collection profiling