当前位置: 首页 > news >正文

凯里市住房和城乡建设局网站建立公司流程

凯里市住房和城乡建设局网站,建立公司流程,物流货运网站,wordpress 小蘑菇目录 概述对象的创建流程对象的内存分配方式对象怎样才会进入老年代大对象直接进入老年代内存担保 jvc 相关指令查看jdk默认使用的gc查看当前jdk支持的有哪些gc查看指定进程当前正在使用的gc 结束 概述 相关文章在此总结如下#xff1a; 文章地址jvm基本知识地址jvm类加载系… 目录 概述对象的创建流程对象的内存分配方式对象怎样才会进入老年代大对象直接进入老年代内存担保 jvc 相关指令查看jdk默认使用的gc查看当前jdk支持的有哪些gc查看指定进程当前正在使用的gc 结束 概述 相关文章在此总结如下 文章地址jvm基本知识地址jvm类加载系统地址双亲委派模型与打破双亲委派地址运行时数据区地址运行时数据区-字符串常量池、程序计数器、直接内存地址 对象的创建流程 常量池检查 检查 new 指令是否能在 常量池中定位到这个类的符号引用检查类之前是否被加载过。 分配内存空间 指针碰撞GC 不带压缩功能Serial和ParNew空闲列表GC 带压缩功能CMS 必要信息设置 对象类的元数据、对象哈希码、GC分代年龄 — 对象头 对象的内存分配方式 内存分配的方法有两种 指针碰撞 (Bump the Pointer)空间列表 (Free List) 分配方法说明收集器指针碰撞(Bump the Pointer)内存地址是连续的(新生代)Serial和ParNew收集器空闲列表(Free List)内存地址不连续(老年代)CMS收集器和Mark-Sweep收集器 对象怎样才会进入老年代 空间担保机制 当新生代无法分配内存的时候要想将新生代的对象转移至老年代然后将新对象放入腾空的新生代。此种机制称之为内存担保。 对象进入老年代如下 新对象大多数默认都进入 Eden对象进入老年代的四种情况 年龄太大 MinorGC15 [-XX:MaxTenuringThreshold]动态年龄判断MinorGC后会动态判断年龄将符合要求对象番移入老年代大对象直接进入老年代 1M [-XX:PretenureSizeThreshold]MinorGC后存活对象太多无法放入 Survivor 动态年龄判断例子Survivor 区中有一批对象年龄分别为 年龄1年龄2年龄n的多个对象对象总和大小超过了Survivor区域的 50%此时就会将年龄n及以上的对象都放入老年代。 大对象直接进入老年代 测试代码如下 /*** -XX:NewRatio2 新生代与老年代比值* -XX:SurvivorRatio8 新生代中Eden 与两个Survivor 区域比值* -XX:PrintGcDetails 打印详细 GC 日志* -XX:PretenureSizeThreshold 对象超过多大值直接在老年代分配默认值为0不限制*/ public class YoungOldArea {public static void main(String[] args) {// 分配 20Mbyte[] bytes new byte[1024 * 1024 * 20];} }appledeMacBook-Pro:gc hyl$ javac /Users/hyl/Desktop/jk/jvm/YoungOldArea.java appledeMacBook-Pro:gc hyl$ cd /Users/hyl/Desktop/jk/jvm appledeMacBook-Pro:jvm hyl$ java -Xmx60m -Xms60m -XX:NewRatio2 -XX:SurvivorRatio8 -XX:PrintGCDetails YoungOldArea内存担保 测试代码如下 /*** 内存分配担保案例*/ public class MemoryAllocationGuarantee {private static final int _1MB 1024 * 1024;public static void main(String[] args) {memoryAllocation();}public static void memoryAllocation() {byte[] allocation1, allocation2, allocation3, allocation4;allocation1 new byte[1 * _1MB];allocation2 new byte[1 * _1MB];allocation3 new byte[1 * _1MB];allocation4 new byte[5 * _1MB];System.out.println(完毕);} }appledeMacBook-Pro:jvm hyl$ javac MemoryAllocationGuarantee.java appledeMacBook-Pro:jvm hyl$ ls MemoryAllocationGuarantee.class MemoryAllocationGuarantee.java YoungOldArea.class YoungOldArea.java lib appledeMacBook-Pro:jvm hyl$ java -Xmx20m -Xms20m -XX:NewRatio2 -XX:SurvivorRatio8 -XX:UseSerialGC -XX:PrintGCDetails MemoryAllocationGuarantee [GC (Allocation Failure) [DefNew: 3749K-279K(6144K), 0.0039312 secs] 3749K-3351K(19840K), 0.0039781 secs] [Times: user0.00 sys0.00, real0.01 secs] 完毕 Heapdef new generation total 6144K, used 5561K [0x00000007bec00000, 0x00000007bf2a0000, 0x00000007bf2a0000)eden space 5504K, 95% used [0x00000007bec00000, 0x00000007bf128920, 0x00000007bf160000)from space 640K, 43% used [0x00000007bf200000, 0x00000007bf245d48, 0x00000007bf2a0000)to space 640K, 0% used [0x00000007bf160000, 0x00000007bf160000, 0x00000007bf200000)tenured generation total 13696K, used 3072K [0x00000007bf2a0000, 0x00000007c0000000, 0x00000007c0000000)the space 13696K, 22% used [0x00000007bf2a0000, 0x00000007bf5a0030, 0x00000007bf5a0200, 0x00000007c0000000)Metaspace used 2668K, capacity 4486K, committed 4864K, reserved 1056768Kclass space used 287K, capacity 386K, committed 512K, reserved 1048576K appledeMacBook-Pro:jvm hyl$ 当新生代无法分配内存的时候要想将新生代的对象转移至老年代然后将新对象放入腾空的新生代。 注意 jdk8 设置了 使用 SerialGC 默认GC不是这样的流程如下命令行执行的命令 appledeMacBook-Pro:jvm hyl$ java -Xmx20m -Xms20m -XX:NewRatio2 -XX:SurvivorRatio8 -XX:PrintGCDetails MemoryAllocationGuarantee 完毕 HeapPSYoungGen total 6144K, used 3764K [0x00000007bf980000, 0x00000007c0000000, 0x00000007c0000000)eden space 5632K, 66% used [0x00000007bf980000,0x00000007bfd2d180,0x00000007bff00000)from space 512K, 0% used [0x00000007bff80000,0x00000007bff80000,0x00000007c0000000)to space 512K, 0% used [0x00000007bff00000,0x00000007bff00000,0x00000007bff80000)ParOldGen total 13824K, used 5120K [0x00000007bec00000, 0x00000007bf980000, 0x00000007bf980000)object space 13824K, 37% used [0x00000007bec00000,0x00000007bf100010,0x00000007bf980000)Metaspace used 2668K, capacity 4486K, committed 4864K, reserved 1056768Kclass space used 287K, capacity 386K, committed 512K, reserved 1048576Kjvc 相关指令 查看jdk默认使用的gc java -XX:PrintCommandLineFlags -version查看当前jdk支持的有哪些gc java -XX:PrintFlagsFinal -version | grep bool Use | grep GC | grep -v java查看指定进程当前正在使用的gc jhsdb jmap --heap --pid 22397结束 至此jvm中对象创建流程与内存分配就结束了如有疑问欢迎评论区留言。
http://www.huolong8.cn/news/488619/

相关文章:

  • 阿里云做的网站误删了wordpress大图片
  • 做网站的行业平台wordpress最大图片
  • 网站内页要不要加上关键词和描述专业团队歌曲
  • 菏泽做网站优化的直播网站开发步骤
  • 淘宝客的优惠卷网站怎么做的建设企业网站方法
  • 做系统那个网站好核工业南京建设集团有限公司
  • wordpress手机端兼容在线seo优化工具
  • 有哪些有趣的网站网站怎么才能上线
  • 在淘宝上做网站如何付费房地产重大利好消息
  • 企业可以做网站的类型黔东南网站建设gzklyy
  • 西部数码虚拟主机怎么做网站如何免费制作网站
  • 我们是谁 网站运营wordpress主题开发难么
  • 织梦怎么做企业网站营销型网站托管
  • 网站建设的必要性’设计模板主题为气流
  • 建设网站的需要学习哪些课程做网站的竞品分析
  • 购物网站详细设计不用iis建立网站
  • 深圳网站空间秋林 做网站
  • 北京猎梦网站建设网站菜单导航
  • 好公司网站建设价格wordpress字段插件
  • 乐清做网站培训南宁网站建设建站系统
  • 网站系统升级怎么做门户网站设计方案
  • 免费网站怎么建立广东省自然资源厅招聘
  • 网站建设技术分为哪些方向学做ppt的网站有哪些内容
  • 天津市住房城乡建设部网站微信公众号可以做几个微网站吗
  • 侵权网站怎么做青岛正一品网站建设
  • 专做外贸的网站有哪些免费旅游网站模板
  • 请大学生做网站wordpress企业免费主题
  • 现在网站做多宽的长安网站建设方案
  • 襄城县城乡建设管理局网站wordpress加印章插件
  • 网站360自然排名要怎么做优化方案数学必修二答案