java - Java中的内存类别“生成的代码”到底是什么?
问题描述
我正在使用jcmd
withVM.native_memory summary.diff scale=MB
来了解为什么我的 JVM 会随着时间的推移使用越来越多的内存。输出是这样的:
Native Memory Tracking:
Total: reserved=1541MB +19MB, committed=290MB +45MB
- Java Heap (reserved=76MB, committed=48MB)
(mmap: reserved=76MB, committed=48MB)
- Class (reserved=1093MB +11MB, committed=77MB +11MB)
(classes #11008 +980)
(malloc=3MB +1MB #22851 +7789)
(mmap: reserved=1090MB +10MB, committed=74MB +11MB)
- Thread (reserved=43MB +1MB, committed=43MB +1MB)
(thread #44 +1)
(stack: reserved=43MB +1MB, committed=43MB +1MB)
- Code (reserved=251MB +5MB, committed=45MB +30MB)
(malloc=7MB +5MB #11790 +7595)
(mmap: reserved=244MB, committed=37MB +25MB)
- GC (reserved=53MB, committed=52MB)
(malloc=18MB #65380 +18712)
(mmap: reserved=35MB, committed=34MB)
- Internal (reserved=3MB, committed=3MB)
(malloc=3MB #20304 +5733)
- Symbol (reserved=18MB +1MB, committed=18MB +1MB)
(malloc=16MB +1MB #134791 +6616)
(arena=2MB #1)
- Native Memory Tracking (reserved=4MB +1MB, committed=4MB +1MB)
(tracking overhead=4MB +1MB)
如您所见,code
自从我启动 JVM 以来,该类别使用了 +30MB。根据 https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr022.html#BABHIFJC
此类别表示生成的代码。
不幸的是,我没有找到更多关于它的细节。什么是“生成代码”?
我在我的代码中使用了一个经常使用的注释。那可能是“生成的代码”吗?
谢谢!
解决方案
推荐阅读
- c++ - 模板函数声明中函数名之后的第二个 <> 是什么?
- c# - Xamarin.Forms 5.0 NavBar BackgroudColor 在 IOS 上没有改变
- omnet++ - 使用 endToEndDelay:vector 和 endToEndDelay:histogram 计算网络的端到端延迟
- python - 单击带有可选参数的工具
- java - 在java文本区域中每组三个数字后添加空格
- json - Swift 可编码协议。字符串编码问题
- r - 如何将数据属性添加到 Shiny App 中的标签?
- python - 为什么我不能在 Discord.py 中创建命令?
- python - 带有循环列表的Python调用函数
- office-js - 需求集 Office.context.mailbox.item 中缺少 getSelectedDataAsync 方法