All too well

性能调优

调优步骤 P192 衡量系统现状 随着系统数据量的不断增长,访问量的不断提升,系统的响应通常会越来越慢,又或是编写的新的应用在性能上无法满足需求,这个时候需要对系统的性能进行调优。调优过程是一个相当复杂的过程,涉及很多的方面:硬件、操作系统、运行环境软件以及应用本身,通常调优的步骤如图所示 调优前首先要做的是衡量系统现状,这包括目前系统的请求次数、响应时间、资源消耗等信息,例如...

Java 线程安全与锁优化

ch13 线程安全与锁优化 1 线程安全 可操作的定义: 当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协作操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的。 要求线程安全的代码: 代码本身封装了所有必要的正确性保障手段(如互斥同步等),令调用者无须关心多线程下的调用问题,...

性能监控与故障处理工具

虚拟机性能监控与故障处理工具 给一个系统定位问题的时候, 知识、 经验是关键基础, 数据是依据, 工具是运用知识处理数据的手段。这里说的数据包括但不限于异常堆栈、 虚拟机运行日志、 垃圾收集器日志、 线程快照(threaddump/javacore文件) 、 堆转储快照(heapdump/hprof文件) 等。恰当地使用虚拟机故障处理、分析的工具可以提升我们分析数据、 定位并解决问题的效率...

虚拟机字节码执行引擎

虚拟机字节码执行引擎 Owner: better 概述 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。 之前还有Java是解释型还是编译型一看就是不...

Java 内存区域与内存溢出异常

ch2 Java 内存区域与内存溢出异常 这块到底讲了什么——两个事 一个是(运行时数据区域)JVM 它使用的这块物理内存的数据区域是怎么划分的,每块区域是做什么的,放了什么,就是讲的 JVM 内存模型的情况。 二个是(HotSpot虚拟机对象探秘)这块就是 JVM 在堆中对象的分配、布局以及访问。 概念上介绍 Java 虚拟机内存的各个区域,讲解这些区域的作用、服务对象以及其中可能...