Java性能优化实践(图灵丛书)
Java性能优化实践学习笔记
P("Struggler") ?
弹离重力的概率!
展开
-
java 性能优化实践——java未来面Done
/** * java 性能优化实践 * 剖析 * @剖析的目的是找出用户编写的代码中可以进行重构和性能优化的部分 * 通常是通过正在执行应用的jvm上链接一个自定义的代理来实现的。 * @首先是找到关键代码 * @TODO 数据结果和我们要解决的问题是正相关的吗/ * * java9和未来 * .原创 2022-05-31 17:35:05 · 123 阅读 · 0 评论 -
java 性能优化实践——现代java并发技术
/** * java 性能优化实践 * java性能技术 * 执行器和任务抽象 * @Runnable如果抛出了一个未捕获的异常,那么它会在栈中传播,执行线程会默认停止运行 * Callable 则会返回一个具体的值或者抛出异常。 * * @ForkJoinPool框架 * 工作窃取算法 * * 现代jav.原创 2022-05-31 15:37:47 · 132 阅读 · 0 评论 -
java 性能优化实践——java并发库使用常识
/** * java 性能优化实践 * 构建并发库 * sun.misc.Unsafe * 不适java平台标准API的一部分 * 在代码和Hotspot直接耦合 * -- * 分配一个对象但不运行构造器 * 访问原始内存和执行相当于指针运算的功能 * .原创 2022-05-30 16:46:32 · 156 阅读 · 0 评论 -
java 性能优化实践——JAVA 语言性能技术
/** * java 性能优化实践 * @JAVA 语言性能技术 * Collections * Map * MultiMap Google * C++情况下动态内存是手动处理的,在程序员的控制之下显式管理对象生命周期,当对象被删除,析构就发生 * 资源的获取和释放直接和对象的生命周期相关 * * Java的.原创 2022-05-30 14:55:15 · 173 阅读 · 0 评论 -
java 性能优化实践——jvm编译技术常识
/** * java 性能优化实践 * AOT编译和JIT编译 * #AOT编译 * 外部程序(编译器)通过读取人类可读的源代码,并直接输出可执行的机器代码 * 只能在一次编译期间进行可能的优化,如果需要调整优化只能再次编译 * #JIT编译 * 通用技术,将源程序转换为中间程序格式,然后再运行时转为高度优.原创 2022-05-28 23:17:12 · 119 阅读 · 0 评论 -
java 性能优化实践_JVM上的代码执行和字节码知识
/** * java 性能优化实践 * JVM上的代码执行 * @JVM两个主要服务——内存管理和为应用程序代码执行提供一个易用的容器 * #字节码解释概览 * JVM解释器是以栈式机器方式运行。 * jvm提供三个保存数据的主要区域 * 求值栈 ——》特定方法本地 * .原创 2022-05-27 16:35:38 · 102 阅读 · 0 评论 -
java 性能优化实践 ——垃圾收集日志开关
/** * java 性能优化实践 * 垃圾收集日志,监控,调优及工具 * 认识垃圾收集日志 * 生成垃圾收集日志 * 将其保存在一个与应用程序的输出独立的文件夹中 * 垃圾收集标志 * -Xloggc:gc.log 控制垃圾收集事件写入哪个文件 * -XX:+PrintGCDe.原创 2022-05-27 16:34:25 · 118 阅读 · 0 评论 -
java 性能优化实践——G1收集器
/** * java 性能优化实践 * G1垃圾收集器 * G1在设计上重新思考了到目前为止我们都在使用的分代的概念 * G1堆布局和区域 * G1堆基于区域的概念,这些区域的大小默认为1MB,更大的堆上会更大。 * 区域的使用支持非连续的分代,从而使收集器可以【不需要在每次运行时收集所有垃圾】 * @整体的G1堆在内存中仍然是连续的,只是组成每一代的内存不必再.原创 2022-05-23 11:32:18 · 128 阅读 · 0 评论 -
java 性能优化实践_java安全点和三色标记
/** * java 性能优化实践 * @java 安全点 ————jvm内部运作的关键一环 * 为了执行STW垃圾收集,必须停止所有应用程序线程,jvm并不是一个完全抢占式的多线程环境 * 这也不意味着它是一个纯粹的合作式环境,操作系统仍然可以在任何时候强占线程 * 除了核心的操作系统外,JVM还需要执行协调操作,为了实现这一点,运行时要求每个应用程序线程都有称为安全点的特殊执行点 *原创 2022-05-23 10:27:18 · 142 阅读 · 0 评论 -
JVM三色标记算法
@三色标记算法 #垃圾收集根标记为灰色 #所有其他对象标记为白色 #有一个标记线程移动到一个随机的灰色节点(GC ROOT)原创 2022-05-23 10:25:44 · 264 阅读 · 0 评论 -
java 性能优化实践——垃圾收集GC
/** * java 性能优化实践 * GC根和Arena * GC根是内存的锚点,属于外部指针,本质上是已知的指针,处于内存池之外,并指向这个内存池 * 内部指针是处于内存池,并指向当前内存池中的另一个位置 * GC根类型 * 栈帧 * JNI * 寄存器(用于变量提升情况).原创 2022-05-19 17:34:10 · 215 阅读 · 0 评论 -
java 性能优化实践——新生代并行收集器
@新生代并行收集器 发生情况—— 一个应用程序线程试图向Eden空间中分配一个对象,但在其TLAB中已经没有足够的空间,而且jvm也无法为该线程分配 一个新的TLAB,此时jvm除了停止所有应用程序线程之外别无选择,如果一个线程无法分配。其他也无法分配 一旦停止所有应用程序线程,HotSpot就会查看新生代(Eden和Survivor)空间,并识别原创 2022-05-19 15:53:23 · 168 阅读 · 0 评论 -
java 性能优化实践——HotSpot运行时
/** * java 性能优化实践 * HotSpot运行时 * java只有两种类型的值 * 基本类型——byte,int * 对象引用 * java没有通用的地址解引用(address dereference)机制 * *作用是引用指针指向的变量值(取出指针指向的变量值),解引用是返回内存地址中对应的对象 .原创 2022-05-18 18:30:42 · 121 阅读 · 0 评论 -
java 性能优化实践——理解垃圾收集
/** * java 性能优化实践 * @理解垃圾收集 * #垃圾收集两个基本原则 * 算法必须回收所有垃圾 * 不能回收任何活跃对象 * 导致段错误(segmentation fault) 破坏程序计数器 * * @标记和清除 * 使用了一个已分配对象链表(a.原创 2022-05-18 18:30:02 · 95 阅读 · 0 评论 -
java 性能优化实践——微基准测试与统计
/** * java 性能优化实践 * @微基准测试与统计 * java性能测量 * 基准测试重要的是能够从数据中推导出什么样的模型 * 实验结果的可重复性是实验结果的基础——客观实验 * * 使用微基准测试 * 使用JMH进行测试 * 公开讨论结果,同行评审 .原创 2022-05-18 14:22:10 · 84 阅读 · 0 评论 -
java 性能优化实践——性能测试反模式
/** * java 性能优化实践 * 性能测试模式和反模式 * @性能测试反模式 * 始终将性能调优视为一个客观的过程,在计划阶段的早期就设定精确的目标 * 人为因素或者沟通因素,而不是技术方面的原因导致应用程序出错 * * Why Developer Making Bad Technology Choices..原创 2022-05-17 17:30:52 · 190 阅读 · 0 评论 -
java 性能优化实践——性能测试模式
/** * java 性能优化实践 * 性能测试模式和反模式 * 性能测试模式 * --有总比没有好 * 好的性能测试是可以量化的,提出一个问题能够得到一个数字化的答案,用于作为实验输出来处理并进行统计分析 * * @延迟测试 * 端到端的交易时间是多少? * 客户端点击支付到支付完成花费时间.原创 2022-05-17 17:29:26 · 221 阅读 · 0 评论 -
java 性能优化实践 硬件和操作系统
来源《java 性能优化实践》/** * java 性能优化实践 * 硬件和操作系统 * 硬件性能提升是软件应用的希望之花,软件正在吞噬整个世界; * @内存 * 更快的时钟速度意味着每秒能完成更多的指令执行 * 更快的芯片需要更快的数据流来执行 * 主存储器已经无法满足处理器核心对新数据的需求 ...原创 2022-05-15 00:30:03 · 175 阅读 · 0 评论 -
Java 性能优化——JIT和内存模型
/** * Java 性能优化 3 * 零成本抽象 * 不需要为我们用不到的功能付出成本 * 更进一步,你使用的,也没办法更加优化 * * AOT(ahead of time)预先编译 * 构建时将源代码编译为平台特定机器代码 * * 即时编译JIT * java程序在字节码解释器中执行,再解释器中,指令在.原创 2022-05-13 17:48:00 · 291 阅读 · 0 评论 -
java性能优化 类加载,编译器,字节码
来源《java性能优化实践》 /** * Java 性能优化 2 * JVM 概述 * @解释和类加载 * 基于栈的解释性机器 * 没有寄存器——通过使用一个包含部分结果的栈,执行栈顶的一个或多个值完成计算 * java解释器——包含在while中的switch语句 (switch-inside-while) * 当使用java 执行应用程序时,操作系原创 2022-05-13 17:46:32 · 156 阅读 · 0 评论 -
java 性能优化关键字
/** * Java 性能优化 1 * 吞吐量 * 一个系统或者子系统能够执行工作速率的指标 * 通常在某个时间段内系统能够执行任务的单元数表示 * 比如每秒可以执行多少事务 * * 延迟 * 系统在处理一个事务的开始和结束所花费的时间 * 端到端的时间 * .原创 2022-05-13 17:45:23 · 183 阅读 · 0 评论