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

网站建设依循的原则手机设计软件有哪些

网站建设依循的原则,手机设计软件有哪些,wordpress会员主题,上海网络优化方法上篇文章我们讲解了单线程垃圾收集器 Serial/SerialOld #xff0c;与之相对应的多线程垃圾收集器就是 Parallel Scavenge/Old#xff0c; 本文我们讲解下多线程垃圾收集器 Parallel Scavenge/Old 垃圾收集器 新生代收集器#xff1a; Serial、ParNew、Parallel Scavenge与之相对应的多线程垃圾收集器就是 Parallel Scavenge/Old 本文我们讲解下多线程垃圾收集器 Parallel Scavenge/Old 垃圾收集器 新生代收集器 Serial、ParNew、Parallel Scavenge老年代收集器 Serial Old、CMS、Parallel Old通用收集器 G1 收集器常用组合 Serial Serial OldParallel Scavenge Parallel OldParNew CMS配合G1不需要组合其他收集器 今天我们要讲的就是 Parallel Scavenge/Old收集器,它采用了复制算法、并行回收、“Stop-the-World”机制与ParNew对比 Parallel Scavenge称为吞吐量优先的垃圾收集器收集器的目标则是达到一个可控制的吞吐量自适应调节策略也是Parallel Scavenge 与ParNew一个重要区别。 Parallel Old 收集器采用了标记-压缩算法但同样也是基于并行回收和“Stop-the-World”机制、 1.Parallel Scavenge/Old Java8 默认垃圾收集器 查看你自己的jdk使用的默认垃圾收集器如果你是java8而且没有在项目中指定垃圾收集器那么他就是ParallelGC 并行垃圾收集器 #查看jdk版本 使用的默认垃圾收集器使用的默认垃圾收集器 java -XX:PrintCommandLineFlags -version打印日志XX:UseParallelGC 默认是采用的多线程垃圾收集器 C:\Users\jzjjava -XX:PrintCommandLineFlags -version -XX:InitialHeapSize265507840 -XX:MaxHeapSize4248125440 -XX:PrintCommandLineFlags -XX:UseCompressedClassPointers -XX:UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:UseParallelGC java version 1.8.0_181 Java(TM) SE Runtime Environment (build 1.8.0_181-b13)使用的默认垃圾收集器 Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)2.JVM参数设置 -XX:UserParallelGC 手动指定年轻代使用Parallel 并行收集器执行内存回收任务。 -XX:UserParallelOldGC :手动指定老年代都是使用并行回收收集器。 分别适用于新生代和老年代。默认jdk8是开启的。上面两个参数默认开启一个另一个也会被开启。二者相互激活 -XX:ParallelGCThreads 设置年轻代并行收集器的线程数 最好与CPU数量相等以避免过多的线程数影响垃圾收集性能。默认情况下当CPU数量小于8个ParallelGCThreads的值等于CPU数量。当CPU数量大于8个ParallelGCThreads的值等于8 (ncpus - 8 ) ( 5/8 )在无特殊要求下ParallelGCThreads参数使用默认值就可以了。在JRE版本1.8.0_131之前JVM无法感知Docker的CPU限制会使用宿主机的逻辑核数计算默认值,如部署在128核物理机上的容器JVM中默认ParallelGCThreads为83远超过了容器的核数导致过多的GC线程数抢占了业务线程的CPU时间加上线程切换的开销较大的降低了吞吐量推荐升级1.8.0_192 -XX:MaxGCPauseMillis 设置垃圾收集器最大停顿时间即STW的时间。单位是毫秒。 停顿时间越短体验越好但是在服务器端我们注重高并发整体的吞吐量所以服务器端适合Parallel进行控制。 -XX:GCTimeRatio 垃圾收集时间占总时间的比例1/N1 用于衡量吞吐量的大小。取值范围0100.默认值是99也就是垃圾收集时间不超过1%. -XX:UserAdaptiveSizePolicy 设置Parallel Scavenge 收集器具有自适应调节策略。 在这种模式下年轻代的大小、Eden和Survivor的比例、晋升老年代的对象年龄等参数会被自动调整自动调整从而达到堆大小吞吐量和停顿时间的平衡点。 在手动调优比较困难的场合可以直接使用这种自适应的方式仅指定虚拟机的最大堆大小目标吞吐量GCTimeRatio和停顿时间MaxGCPauseMills让虚拟机自己完成调优工作。 3.测试GC日志 设置JVM参数注意注意注意 我这里是没有设置使用何种GC回收方式的采用的就是默认的 使用的默认垃圾收集器UseParallelGC -verbose:gc -Xms10M -Xmx10M -XX:PrintGC -XX:PrintGCDetails -XX:HeapDumpOnOutOfMemoryError -XX:SurvivorRatio8默认使用 UseParallelGC 年轻代 PSYoungGen伊甸区 edenSurviral from区 fromSurviral to区 to老年代 ParOldGen元空间 Metaspace 3.1 JVM测试类 Jvm测试类设置JVM最大堆10M for循环10次每次增加1M的内存 package com.jzj.jvmtest.jvmready;import lombok.extern.slf4j.Slf4j;Slf4j public class ParallelTest {//JVM 参数 -verbose:gc -Xms10M -Xmx10M -XX:PrintGC -XX:PrintGCDetails -XX:HeapDumpOnOutOfMemoryError -XX:SurvivorRatio8public static void main(String[] args) throws Exception {byte[] b null;for (int i 1; i 10; i) {//设置 1M的对象log.info( i 次添加1M对象);b new byte[1 * 1024 * 1024];Thread.sleep(100);}} }打印GC日志 [GC (Allocation Failure) [PSYoungGen: 2048K-504K(2560K)] 2048K-836K(9728K), 0.0008089 secs] [Times: user0.00 sys0.00, real0.00 secs] [GC (Allocation Failure) [PSYoungGen: 2552K-512K(2560K)] 2884K-1202K(9728K), 0.0008076 secs] [Times: user0.00 sys0.00, real0.00 secs] [GC (Allocation Failure) [PSYoungGen: 2541K-512K(2560K)] 3232K-1687K(9728K), 0.0009372 secs] [Times: user0.00 sys0.00, real0.00 secs] 23:58:24.981 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 1次添加1M对象 23:58:25.090 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 2次添加1M对象 23:58:25.201 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 3次添加1M对象 23:58:25.312 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 4次添加1M对象 23:58:25.423 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 5次添加1M对象 23:58:25.531 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 6次添加1M对象 23:58:25.642 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 7次添加1M对象 [GC (Allocation Failure) [PSYoungGen: 2252K-496K(2560K)] 8547K-6976K(9728K), 0.0007743 secs] [Times: user0.00 sys0.00, real0.00 secs] 23:58:25.751 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 8次添加1M对象 [GC (Allocation Failure) --[PSYoungGen: 1559K-1559K(2560K)] 8040K-8088K(9728K), 0.0009963 secs] [Times: user0.00 sys0.00, real0.00 secs] [Full GC (Ergonomics) [PSYoungGen: 1559K-0K(2560K)] [ParOldGen: 6528K-2581K(7168K)] 8088K-2581K(9728K), [Metaspace: 5077K-5077K(1056768K)], 0.0046449 secs] [Times: user0.02 sys0.00, real0.00 secs] 23:58:25.860 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 9次添加1M对象 23:58:25.970 [main] INFO com.jzj.jvmtest.jvmready.ParallelTest - 10次添加1M对象 HeapPSYoungGen total 2560K, used 1506K [0x00000000ffd00000, 0x0000000100000000, 0x0000000100000000)eden space 2048K, 73% used [0x00000000ffd00000,0x00000000ffe78990,0x00000000fff00000)from space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000)to space 512K, 0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000)ParOldGen total 7168K, used 4629K [0x00000000ff600000, 0x00000000ffd00000, 0x00000000ffd00000)object space 7168K, 64% used [0x00000000ff600000,0x00000000ffa857f0,0x00000000ffd00000)Metaspace used 5179K, capacity 5308K, committed 5504K, reserved 1056768Kclass space used 574K, capacity 596K, committed 640K, reserved 1048576K3.2 GC日志分析 GC日志参数含义GC (Allocation Failure)GC引起原因是年轻代没有足够空间存储新数据Full GC (Ergonomics)FullGC引起原因是老年代空间不足gc垃圾回收后依旧存在大量对象PSYoungGen新生代这个名称由收集器决定。PS是Parallel Scavenge收集器的缩写ParOldGenParallel Scavenge收集器配套的老年代MetaspaceParallel Scavenge收集器配套的永久代total used总的空间和用掉的空间 对GC日志进行分析 首先看下YoungGC GC (Allocation Failure) 内存分配失败发生YoungGCPSYoungGen: 2048K-504K(2560K)] 2048K-844K(9728K), 0.0010931 secs 发生YGCYGC前新生代已使用2048K-gc发生后内存使用504K 2560K是新生代区域总容量 换句话说就是 新生代回收前已使用 2048YGC回收后新生代已使用504kYGC释放了多少内存回收了多少垃圾 2048-504 1544K的空间新生代总大小为 2560K 2048K-836K(9728K) 表示YGC前 Java堆已使用容量2048K YGC发生后Java堆使用了836KJava的总的可用的堆容量为9728K 于Java堆来说 YGC释放了2048-836 1212K 的空间 0.0010931 secs YGC回收垃圾耗时Times: user0.00 sys0.00, real0.00 secs 用户消耗cpu时间 内核态消耗cpu时间 真正操作消耗的时间 下面我们看下FullGC Full GC (Ergonomics) 发生FullGC清除所有区域的垃圾对象发生了STW(Stop The World) PSYoungGen: 1551K-0K(2560K) 年轻代 gc前占用 1551K- gc后 0K年轻代对象全部被销毁年轻代大小2560KParOldGen: 6558K-2640K(7168K)] 老年代 gc前占用 6558K -gc后 2640K老年代也销毁了一部分老年代大小7168K8110K-2640K(9728K) Java堆大小 gc前占用 8110K -gc后 2640K 年轻代剩余0K老年代剩余2640K 就是Java堆gc后的剩余 2640K Java堆总大小 9782KMetaspace: 5084K-5084K(1056768K)], 0.0040923 secs] 元空间及该次FullGc消耗时间 这就是 ParallelGC 垃圾收集器的处理方式及GC的日志分析我们可以通过GC日志看到新生代及老年代的存活对象情况适当的调整参数达到最完美的JVM状态
http://www.hkea.cn/news/14540184/

相关文章:

  • 网站的建设工具实施过程seo推广外包
  • 外贸建设网站公司哪家好怎么做外语网站
  • 网站建设小程序公众号销售Add-ons wordpress
  • 做论坛网站4g空间够不够用手机网站php源码
  • 手机个人简历模板下载网站模板微信小程序代码生成器
  • 做视频网站需要哪些手续邢台住房和城乡建设部网站
  • 单页的网站怎么做北京vi设计公司 四方之志
  • 建设音乐网站功能定位做图素材网站开通会员哪个好
  • 网站网站开发公司用户体验设计课程
  • 福永营销型网站多少钱普陀网页设计
  • 网站设计可以用性原则wordpress是cms
  • 做美食网站的需求cms在线
  • 通信工程建设网站揭阳网站制作软件
  • 已认证网站服务费怎么做电子商务沙盘seo关键词
  • 网站qq未启用做球迷网站
  • 餐饮网站建设策划书不花钱的网站怎么做
  • 淇县网站设计公司长春营销型网站制作
  • 鲜花网站建设规划书中国最知名的网站建设公司
  • 用网站建设费用建站优化公司
  • 昆山网站设计广告设计培训内容
  • 类似wordpress的建站系统手机视频播放器app哪个最好用
  • 设计师招聘网站做网页局域网站点配置
  • 网站被iframe郑州计算机网站公司
  • 网站设计跟网页制作西安模板建网站
  • 网站设计制作要多少钱vis设计机构
  • 类似好123门户网站开发复杂么影视公司需要的许可证
  • 网站新闻不收录衡水龙腾网站建设
  • 网站建设备案需要材料wordpress 写 wiki
  • 网站建设公司的税是多少钱一站式企业建站制作
  • 网站开发简单吗企业网站规划书范文