为什么在Java 8中类元空间会随着时间增加?

下一个

我正在运行Tomcat应用程序(由Hibernate + EhCache组成)。这是典型的ORM Web应用程序,不应创建很多类。但是,本机内存跟踪显示为“否”。

在过去的24小时内,我的Web应用程序平均每小时在Metaspace中创建约1个新班级,其中每小时高峰11个班级,而高峰4小时不创建班级。

因此,我从7449课开始,在24小时之后,我有7481课。诱导完全GC后,类的数量可以减少0-2,但总体保持不变。

所以

  1. 如果延迟加载类,我如何估计将在本机内存中创建的类总数?

    • 我知道Hibernate创建代理类。有没有办法预测这些代理类的数量?
    • 如何强制JVM紧急加载所有类?
  2. 如何记录将哪些新类加载到Metaspace?

我的配置:

Server version: Apache Tomcat/8.0.28
OS Name:        Linux
OS Version:     3.14.34-27.48.amzn1.x86_64
Architecture:   amd64
JVM Version:    1.8.0_71-b15
JVM Vendor:     Oracle Corporation

JVM flags: -Xms512m -Xmx2G -XX:+UseG1GC -XX:NativeMemoryTracking=summary -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics
Hibernate 4.3.1
脂蛋白

有没有办法预测这些代理类的数量

一般来说,不可以。理论上,一个应用程序可以随时发出类文件字节码。

如何强制JVM紧急加载所有类?

你不能 延迟类加载是Java的功能之一。好吧,您可以扫描类路径并从所有JAR加载所有类,但这不是您想要的,因为它最终会导致成千上万个未使用的类。

如何记录将哪些新类加载到Metaspace?

采用 -XX:+TraceClassLoading

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么Java 8中的类元空间会随着时间增加?

来自分类Dev

为什么随着核心数量的增加,经过的时间会增加?

来自分类Dev

为什么硬件会随着时间而变慢?

来自分类Dev

为什么我的CUDA内核执行时间会随着连续启动而增加?

来自分类Dev

为什么在opencl中,随着消息大小的增加,带宽也会增加?

来自分类Dev

为什么加速会随着管线级数的增加而降低?

来自分类Dev

为什么穿线会增加处理时间?

来自分类Dev

为什么即使我的程序没有创建任何新对象,堆利用率也会随着时间的推移而增加?

来自分类Dev

Java为什么会抛出java.lang.OutOfMemoryError:Metaspace但有很多可用的元空间?

来自分类Dev

为什么lftp镜像操作会随着时间的推移而变慢?

来自分类Dev

在Java中,为什么类“数组”是复数?

来自分类Dev

为什么Java中存在匿名类?

来自分类Dev

Java 8中的歧义方法,为什么?

来自分类Dev

为什么Java tzupdater增加leap秒?

来自分类Dev

为什么堆内存与元空间中一起往上走在Java中8?

来自分类Dev

为什么较小的NTFS分区无法随着分区大小的增加而增加可用空间?

来自分类Dev

为什么此地图会更新?(JAVA)

来自分类Dev

Java 8:为什么Metaspace大小会增加,但加载的类数却保持不变?

来自分类Dev

Drools为什么不使用Java 8?

来自分类Dev

为什么错了?关于Java 8流

来自分类Dev

Java的8可选。为什么和ofNullable?

来自分类Dev

为什么在Java中“或”比“和”慢?

来自分类Dev

为什么ArrayList比Java中的HashSet快?

来自分类Dev

为什么在Java中Sin(30)= -0.9880316240928618

来自分类Dev

为什么这个输出在java中

来自分类Dev

为什么在Java中收到NoClassDefFoundError?

来自分类Dev

为什么此声明在Java中是正确的

来自分类Dev

为什么在Java中收到nullPointerException?

来自分类Dev

为什么语言环境在 Java 中是最终的?

Related 相关文章

  1. 1

    为什么Java 8中的类元空间会随着时间增加?

  2. 2

    为什么随着核心数量的增加,经过的时间会增加?

  3. 3

    为什么硬件会随着时间而变慢?

  4. 4

    为什么我的CUDA内核执行时间会随着连续启动而增加?

  5. 5

    为什么在opencl中,随着消息大小的增加,带宽也会增加?

  6. 6

    为什么加速会随着管线级数的增加而降低?

  7. 7

    为什么穿线会增加处理时间?

  8. 8

    为什么即使我的程序没有创建任何新对象,堆利用率也会随着时间的推移而增加?

  9. 9

    Java为什么会抛出java.lang.OutOfMemoryError:Metaspace但有很多可用的元空间?

  10. 10

    为什么lftp镜像操作会随着时间的推移而变慢?

  11. 11

    在Java中,为什么类“数组”是复数?

  12. 12

    为什么Java中存在匿名类?

  13. 13

    Java 8中的歧义方法,为什么?

  14. 14

    为什么Java tzupdater增加leap秒?

  15. 15

    为什么堆内存与元空间中一起往上走在Java中8?

  16. 16

    为什么较小的NTFS分区无法随着分区大小的增加而增加可用空间?

  17. 17

    为什么此地图会更新?(JAVA)

  18. 18

    Java 8:为什么Metaspace大小会增加,但加载的类数却保持不变?

  19. 19

    Drools为什么不使用Java 8?

  20. 20

    为什么错了?关于Java 8流

  21. 21

    Java的8可选。为什么和ofNullable?

  22. 22

    为什么在Java中“或”比“和”慢?

  23. 23

    为什么ArrayList比Java中的HashSet快?

  24. 24

    为什么在Java中Sin(30)= -0.9880316240928618

  25. 25

    为什么这个输出在java中

  26. 26

    为什么在Java中收到NoClassDefFoundError?

  27. 27

    为什么此声明在Java中是正确的

  28. 28

    为什么在Java中收到nullPointerException?

  29. 29

    为什么语言环境在 Java 中是最终的?

热门标签

归档