Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反射类不断增加_Java_Performance_Memory Leaks_Garbage Collection_Profiling - Fatal编程技术网

Java 反射类不断增加

Java 反射类不断增加,java,performance,memory-leaks,garbage-collection,profiling,Java,Performance,Memory Leaks,Garbage Collection,Profiling,我可以在我的应用程序中看到,没有加载的类在不断增加 通过使用yourkit和stack overflow社区的帮助,我可以得出结论,类的增加是因为反射类的动态创建,如下所示: GeneratedConstructorAccessorXX GeneratedMethodAccessorXX GeneratedSerializationConstructorAccessorXX 其中XX是一些数字 据我所知,以及我后来所知道的,这些是反射用来访问存储在内存中的对象信息的运行时代理。这些访问器被缓存,

我可以在我的应用程序中看到,没有加载的类在不断增加

通过使用yourkit和stack overflow社区的帮助,我可以得出结论,类的增加是因为反射类的动态创建,如下所示:

  • GeneratedConstructorAccessorXX
  • GeneratedMethodAccessorXX
  • GeneratedSerializationConstructorAccessorXX

    其中XX是一些数字

  • 据我所知,以及我后来所知道的,这些是反射用来访问存储在内存中的对象信息的运行时代理。这些访问器被缓存,因此不必每次都重新生成。这些类对象是每个类加载器的单例对象,因此对于给定类的每个类加载器,我们只有一个生成的访问器实例。 如果是这种情况,为什么我在运行重复测试时看到加载类的增加

    更新* 在进一步的分析中,我观察到负载的增加是由于
    GeneratedSerializationConstructor或Accessor。

    我将在下面分享我的发现,并将接受这个答案,除非其他人提供更好的答案。 在进一步分析和使用您的工具包检查stacktraces后,我能够看到GeneratedSerializationConstructor或Accessor是在进行任何EJb bean调用时创建的。尽管并不是每个请求都创建了新的此类类。 发现的另一个观察结果是,另一个使用ejbbean的应用程序也部署在同一个jboss服务器上,并且是测试的一部分,但是我们没有遇到任何这样的问题

    我可以看到的一个区别是,后来的应用程序没有发现这样的问题,它使用的是EJB3.X,而发现问题的应用程序使用的是2.X。 可能是旧版本造成了问题。 它已经被确定不是一个表演的停止者,它的表演将在制作中被观看