德州网站优化圣象分销系统
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:27
当前位置: 首页 > news >正文
德州网站优化,圣象分销系统,wordpress固定地址,上海职业技能培训机构1、G1垃圾收集器 -XX:MaxGCPauseMillis10#xff0c;G1的参数#xff0c;表示在任意1s时间内#xff0c;停顿时间不能超过10ms#xff1b;G1将堆切分成很多小堆区#xff08;Region#xff09;#xff0c;每一个Region可以是Eden、Survivor或Old区#xff1b;这些区在…1、G1垃圾收集器 -XX:MaxGCPauseMillis10G1的参数表示在任意1s时间内停顿时间不能超过10msG1将堆切分成很多小堆区Region每一个Region可以是Eden、Survivor或Old区这些区在内存上不是连续存放的每一块Region大小都是相同的大小为1-32M若Region对象存储不下大小超过Region50%的对象将会存放到Humongous Region-XX:G1HeapRegionSize可以调整Region大小-XX:G1HeapWastePercent可以调整GC回收的阈值默认为5%只有达到这个阈值GC才会回收对象避免GC花费大量时间回收内存却比较少 垃圾回收过程 G1“年轻代对象回收”即Minor GC发生时机为Eden满老年代垃圾收集他是一个并发标记过程会顺便清理一点对象混合清理会同时清除年轻代和老年代对象 RSet RSet记录的其他Region对象应用本Region对象的关系是一个hash结构key为引用的Region的地址value为应用本Region的对象卡页集合有了该结构回收对象时不必堆整个堆内存对象进行扫描RSet占用空间较大通常为5% 2、高并发下估算和调优 1GC考量指标 系统容量机器上的资源容量资源容量限制比较严格的系统对他的优化会越明显吞吐量在一个时间段内完成多少事务操作延迟等待时间如查询一条sql返回数据所等待时间 2选择垃圾收集器 堆大小空间不是很大如100MB使用串行收集器效果最好XXUseSerialGC如果机器为单核CPU选择串行收集器较好如果应用为“吞吐优先”并且堆停顿时间没有要求使用并行收集器合适XX:UseParallelGC如果应用对响应时间要求较高使用G1CMSZGC较为合适-XX:UseConcMarkSweepGC、-XX:UseG1GC、-XX:UseZGC 但会额外使用资源处理 3大流量应用特点 对延迟非常敏感的应用通常可以通过机器集群来解决考量系统指标有 TPS每秒处理的事务数量AVG平均响应时间TP表示机器有多少请求响应时间小于x毫秒如TP80代表有80%的请求响应时间小于x毫秒 4估算 假设高峰请求6w/s共有10台机器每个请求大小20k则每台机器JVM的流量为120MB/s 5调优 假设给JVM分配了5460MB空间则年轻代占用空间为5460/31820MBEden区大小大约为1820/10*81456MB,按照上面估算的120MB/s的流量大约12s需要发生一次Minor GC每隔半小时会发送一次Major GCSurvivor区大小为182MB若幸存下来的对象大于Survivor区内存大小则会将对象直接分配到Old区这样导致垃圾存储时间更长只有Old区满了才能清除大部分对象存活时间短在Eden区发生GC后会回收大量对象我们可以分配一半的空间给Eden区通过配置-XX:UseConcMarkSweepGC -Xmx5460M -Xms5460M -Xmn2730MEden区发生GC时间为2730/10*8/12018s调大年轻代顺便调大幸村去这样对象在年轻代存活时间越大元空间在扩容时会发生Full GC默认大小为20MB可以通过参数- -XX:MetaspaceSize256M -XX:MaxMetaspaceSize256M将其调大减少发生Full GC 3、OOM问题排查 1分析那个线程影响CPU 使用top命令查询占用CPU最多的线程记录其pidshitfp可以按照CPU使用率进行排序使用 top -H -p pid 查看进程中哪个线程占用CPU最高记录线程id将十进制是tid转换为16进制printf %x tid将线程栈信息输入到文件jstack tid tid.log;查看日志信息 less tid.log 2内存泄漏 内存溢出是结果内存泄漏是一个原因不再被使用的对象没有被切断和GC root链接会导致内存泄漏使用hashmap缓存数据时没有使用LRU等策略导致hashmap数据量越来越多最终导致内存泄漏操作文件读写时没有将close放入finally中最终导致文件描述符越来越多导致内存泄漏 4、JMM 1JMM结构 主存储器所有实例对象存储的位置实例所拥有的字段也存储在里面是所有线程共享的工作存储器每个线程都有自己的工作存储器工作存储器存储主存储器所必要的数据拷贝线程无法直接对主存储器进行操作只能通过主存进行通信 2操作类型 read作用于主内存将共享变量从主内存传送到工作内存中load作用于工作内存将read中的值读取到的值放入工作内存的变量副本中store作用于工作内存将工作内存中的变量副本传送到主内存中write作用于主内存中将strore的值写入到主内存的共享变量中use作用域工作内存会将工作内存的值传递给执行引擎每当虚拟机需要使用该变量就会执行该操作assign作用于工作内存每当虚拟机遇到一个赋值指令就会把执行引擎中获取的值赋值给工作内存中的变量lock作用于主内存将变量标记为线程独占状态unlock作用于主内存释放独占状态 3三大特性 原子性JMM 保证了 read、load、assign、use、store 和 write 六个操作具有原子性除了long、double其余基本数据类型都是原子性的可见性一个线程修改了变量会同步给主内存赶在其他线程修改之前刷新主内存。使用volatile修饰变量变量更新会立即同步到主内存中其他线程修改该变量之前需要到主内存中拉取变量更新到自己的工作内存有序性在线程中观察可以发现操作是有序的而在另外一个线程中观察操作是无序的java中有一些默认的happen-before 程序次序一个线程内按照代码顺序写在前面的操作先行发生于写在后面的操作。监视器锁定unLock 操作先行发生于后面对同一个锁的 lock 操作。volatile对一个变量的写操作先行发生于后面对这个变量的读操作。传递规则如果操作 A 先行发生于操作 B而操作 B 又先行发生于操作 C则操作 A 先行发生于操作 C。线程启动对线程 start() 的操作先行发生于线程内的任何操作。线程中断对线程 interrupt() 的调用先行发生于线程代码中检测到中断事件的发生可以通过 Thread.interrupted() 方法检测是否发生中断。线程终结规则线程中的所有操作先行发生于检测到线程终止可以通过 Thread.join()、Thread.isAlive() 的返回值检测线程是否已经终止。对象终结规则一个对象的初始化完成先行发生于它的 finalize() 方法的开始。 4内存屏障 load-load barriers指令前插入load Barriers会使高速缓存直接失效强制重新从主内存加载数据如下:load1数据的加载会先于load2及后面的数据的加载 load1 LoadLoad load2 load-store Barriersload1数据的加载会先于store2及后面数据存储指令加载到主内存 load1 LoadStore store2 store-store Barriersstore1数据写入主内存优先于store2及后面的数据写入主内存使用store barriers能让写入缓存的数据最快加载如主内存让其他线程可见 store1 StoreStore store2 store-load Barriers在load2及后续所有读取操作执行之前保证store1写入对多有处理器都可见开销最大涵盖前三条 store1 StoreLoad load2 5、字节码看并发编程 1线程模型 对于java虚拟机中每一个java线程会对应一个轻量级进程LWP轻量级线程是调用系统内核所提供的一套接口实际上还需要调用内核线程KLT具体的概念如创建同步等需要进行系统调用系统调用需要用户态和内核态进行切换即上下文切换开销较大 2Synchronized字节码 方法加上Synchronized关键字字节码是在flag标志处加上同步标志 对对象使用synchronized字节码是通过一套monitorentermonitorexit来使用的 public class SynchronizedDemo {synchronized void m1() {System.out.println(m1);}final Object lock new Object();void doLock() {synchronized (lock) {System.out.println(lock);}} } 3对象内存布局 Mark Word用来存储 hashCode、GC 分代年龄、锁类型标记、偏向锁线程 ID、CAS 锁指向线程 LockRecord 的指针等synconized 锁的机制与这里密切相关Class Point用于执行对象所对应的类元数据信息JVM通过他直到对象属于哪个ClassInstance Data真正存储对象数据如字段内容等Padding对象字节必须为8倍数该字段会自动填充到8倍数 6、
- 上一篇: 德州网站seo深圳市公司网站建设企业
- 下一篇: 地产网站互动设计销售外包
相关文章
-
德州网站seo深圳市公司网站建设企业
德州网站seo深圳市公司网站建设企业
- 技术栈
- 2026年03月21日
-
德州手机网站建设费用网上推广app合法吗
德州手机网站建设费用网上推广app合法吗
- 技术栈
- 2026年03月21日
-
德州市网站建设内江网站建设新闻
德州市网站建设内江网站建设新闻
- 技术栈
- 2026年03月21日
-
地产网站互动设计销售外包
地产网站互动设计销售外包
- 技术栈
- 2026年03月21日
-
地产网站建设网全自动引流推广软件app
地产网站建设网全自动引流推广软件app
- 技术栈
- 2026年03月21日
-
地产项目网站医生做网站不违法
地产项目网站医生做网站不违法
- 技术栈
- 2026年03月21日






