Java性能权威指南(第2版)

Java性能权威指南(第2版)

  • 大小:72.6 MB
  • 类型:Java指南
  • 格式:PDF
  • 出版:人民邮电出版社
  • 作者:斯科特·奥克斯(Scott、Oaks)
  • 更新:2022-09-06 09:08:44
vip 免费获取(已有116人参与)
关注公众号免费送书
版权投诉 / 资源反馈(本资源由用户 符慧艳 投稿)

为找资料的网友们整理了Java指南相关的资料,由人民邮电出版社出版,作者是斯科特·奥克斯(Scott、Oaks),介绍了关于Java、Java指南方面,格式为PDF,资源大小72.6 MB,目前在Java指南类资源综合评分为:8.2分。

Java指南资源推荐

书籍介绍

内容简介

本书从JVM和Java API两个方面,深入地介绍了Java 8和Java 11等新的Java长期支持版本中影响性能的因素。本书先从Java应用程序的通用方法、基准测试的缺陷、性能监控工具等方面,分析了如何通过JVM的配置方式影响程序的性能;接着从即时编译、垃圾回收、堆内存与原生内存实践、线程与同步的性能等方面,分析了常见的优化方向及其特性。第2版专注于更加成熟的Java 8和Java 11,主要的更新内容涉及G1垃圾回收器和Java飞行记录器,以及Java在容器化环境下的性能变化。

目录

  • 前言 xiii
  • 第 1章导论 1
  • 1.1概述 2
  • 1.2平台和约定 2
  • 1.2.1Java平台 2
  • 1.2.2硬件平台 4
  • 1.3全面的性能 6
  • 1.3.1写出更好的算法 6
  • 1.3.2写更少的代码 7
  • 1.3.3过早优化 8
  • 1.3.4其他:数据库永远是瓶颈 9
  • 1.3.5常见优化 9
  • 1.4小结 10
  • 第 2章性能测试方法 11
  • 2.1测试真实的应用程序 11
  • 2.1.1微基准测试 11
  • 2.1.2宏基准测试 15
  • 2.1.3介基准测试 16
  • 2.2理解吞吐量、批处理时间和响应时间 17
  • 2.2.1测量批处理时间17
  • 2.2.2测量吞吐量18
  • 2.2.3测量响应时间 19
  • 2.3理解可变性22
  • 2.4早测试、常测试 25
  • 2.5基准测试示例 27
  • 2.5.1Java 微基准测试工具 27
  • 2.5.2常用代码示例 34
  • 2.6小结 36
  • 第3 章Java 性能工具箱 38
  • 3.1操作系统工具和分析 38
  • 3.1.1CPU 使用率 39
  • 3.1.2CPU 运行队列 41
  • 3.1.3磁盘使用率 42
  • 3.1.4网络使用率 44
  • 3.2Java 监控工具 45
  • 3.2.1基本的VM 信息 46
  • 3.2.2线程信息 48
  • 3.2.3类信息 49
  • 3.2.4实时GC 分析 49
  • 3.2.5堆转储后期处理 49
  • 3.3性能分析工具 49
  • 3.3.1采样分析器 50
  • 3.3.2探查分析器 53
  • 3.3.3阻塞方法和线程时间线 54
  • 3.3.4原生分析器 55
  • 3.4JFR 57
  • 3.4.1Java Mission Control 57
  • 3.4.2JFR 概览 58
  • 3.4.3开启JFR 64
  • 3.4.4选择JFR 事件 67
  • 3.5小结 69
  • 第4 章使用即时编译器 70
  • 4.1即时编译器:概览 70
  • 4.2分层编译 73
  • 4.3常用的编译器标志 74
  • 4.3.1优化代码缓存 74
  • 4.3.2检查编译过程 75
  • 4.3.3分层编译级别 78
  • 4.3.4逆优化 79
  • 4.4高级编译器标志 82
  • 4.4.1编译阈值 82
  • 4.4.2编译线程 83
  • 4.4.3内联 85
  • 4.4.4逃逸分析 86
  • 4.4.5CPU 相关代码 87
  • 4.5分层编译的权衡 88
  • 4.6GraalVM 89
  • 4.7预编译 90
  • 4.7.1提前编译 90
  • 4.7.2GraalVM 原生编译 92
  • 4.8小结 93
  • 第5 章垃圾回收简介 95
  • 5.1垃圾回收概览 95
  • 5.1.1分代垃圾回收器97
  • 5.1.2GC 算法99
  • 5.1.3选择GC 算法101
  • 5.2GC 优化基础108
  • 5.2.1调整堆的大小 108
  • 5.2.2调整分代大小 110
  • 5.2.3调整元空间大小 112
  • 5.2.4控制并行113
  • 5.3GC 工具114
  • 5.3.1在JDK 8 中开启GC 日志 114
  • 5.3.2在JDK 11 中开启GC 日志 115
  • 5.4小结 118
  • 第6 章垃圾回收算法 119
  • 6.1理解Throughput 回收器 119
  • 6.2理解G1 垃圾回收器 125
  • 6.3理解CMS 回收器 136
  • 6.4高级优化 143
  • 6.4.1晋升和Survivor 空间143
  • 6.4.2分配大对象 146
  • 6.4.3AggressiveHeap 标志 152
  • 6.4.4完全掌控堆的大小 153
  • 6.5实验性GC 算法 154
  • 6.5.1并发压缩:ZGC 和Shenandoah 154
  • 6.5.2无回收:Epsilon GC 156
  • 6.6小结157
  • 第7 章堆内存实践 159
  • 7.1堆分析 159
  • 7.1.1堆直方图160
  • 7.1.2堆转储161
  • 7.1.3内存溢出错误 164
  • 7.2减少内存使用 168
  • 7.2.1减小对象大小 169
  • 7.2.2使用延迟初始化171
  • 7.2.3使用不可变对象和标准化对象 175
  • 7.3对象生命周期管理 176
  • 7.3.1对象重用177
  • 7.3.2软引用、弱引用和其他引用181
  • 7.3.3压缩的普通对象指针193
  • 7.4小结194
  • 第8 章原生内存实践195
  • 8.1内存占用195
  • 8.1.1测量内存占用 196
  • 8.1.2小化内存占用197
  • 8.1.3原生内存跟踪 197
  • 8.1.4共享库原生内存201
  • 8.2针对操作系统的JVM 优化 204
  • 8.3小结208
  • 第9 章线程和同步性能 209
  • 9.1线程和硬件209
  • 9.2线程池和ThreadPoolExecutor 210
  • 9.2.1设置线程数210
  • 9.2.2设置小线程数213
  • 9.2.3线程池任务大小215
  • 9.2.4设置ThreadPoolExecutor 的大小215
  • 9.3ForkJoinPool.217
  • 9.3.1工作窃取 221
  • 9.3.2自动并行化 223
  • 9.4线程同步 224
  • 9.4.1同步的代价 225
  • 9.4.2避免同步 228
  • 9.4.3伪共享 230
  • 9.5JVM 线程优化 233
  • 9.5.1优化线程栈大小 234
  • 9.5.2偏向锁234
  • 9.5.3线程优先级 235
  • 9.6监控线程和锁 235
  • 9.6.1查看线程235
  • 9.6.2查看阻塞线程 236
  • 9.7小结239
  • 第 10 章Java 服务器 240
  • 10.1Java NIO 概览 240
  • 10.2服务器容器 242
  • 10.2.1优化服务器线程池 242
  • 10.2.2异步Rest 服务器 243
  • 10.3异步出站调用246
  • 10.4JSON 处理251
  • 10.4.1解析和编组概览 252
  • 10.4.2JSON 对象 253
  • 10.4.3JSON 解析 254
  • 10.5小结 256
  • 第 11 章数据库性能实践 257
  • 11.1示例数据库 258
  • 11.2JDBC 258
  • 11.2.1JDBC 驱动 258
  • 11.2.2JDBC 连接池 260
  • 11.2.3预处理语句和语句池 261
  • 11.2.4事务 262
  • 11.2.5结果集处理269
  • 11.3JPA270
  • 11.3.1优化JPA 写 271
  • 11.3.2优化JPA 读 272
  • 11.3.3JPA 缓存 275
  • 11.4Spring Data280
  • 11.5小结281
  • 第 12 章Java SE API 技巧282
  • 12.1字符串 282
  • 12.1.1压缩字符串 282
  • 12.1.2重复字符串和字符串保留283
  • 12.1.3字符串连接 288
  • 12.2缓冲I/O 291
  • 12.3类加载 293
  • 12.4随机数 296
  • 12.5Java 原生接口298
  • 12.6异常300
  • 12.7日志303
  • 12.8Java 集合API304
  • 12.8.1同步和非同步305
  • 12.8.2设置集合大小306
  • 12.8.3集合与内存效率 307
  • 12.9Lambda 和匿名类 308
  • 12.10流和过滤器的性能310
  • 12.11对象序列化 312
  • 12.11.1瞬时字段312
  • 12.11.2覆盖默认的序列化313
  • 12.11.3压缩序列化数据 315
  • 12.11.4跟踪重复对象317
  • 12.12小结 319
  • 附录调优标志总结 321

以上就是本次关于书籍资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

Java指南相关资源

  • Java程序设计实用教程

    Java程序设计实用教程 课后答案

    《Java 程序设计实用教程》是2010年4月人民邮电出版社在出版的书籍,作者是耿祥义、张跃平。本书注重结合实例,循序渐进地向读者介绍了Java语言的重要知识点,特别强调Java面向对象编程的思想。 Java语言具有面向对象、与平台无关、安全、稳定、多线程等优良特性,是目前软件设计中极为强大的编程语言。全书分为16章,分别讲解了简单数据类型、运算符、表达式和语句、类与对象、子类与继承、接口与多态、数组与枚举、内部类与异常类、常用实用

    大小:3.35 MBJava教程课后答案

  • Java EE Web编程

    Java EE Web编程

    JavaEEWeb编程(Eclipse平台) 作者:李芝兴、杨瑞龙 出版时间:2008-01 【图书简介】 本书全面地介绍了JavaEEWeb编程技术,内容由浅入深,循序渐进。本书内容包括了JavaEE技术规范、Eclipse开发平台、JSP、Servlet、Web服务器、应用服务器和数据库的安装及其简单操作。本书重点介绍了目前流行的轻型框架Hibernate、Struts以及Spring。本书的案例操作性强、实用性高。通过案例的讲解力求让读者掌握各个技术的要点,从而引领读者了解和学习更多的知识。本书适合

    大小:62.27MBJava EE电子书

  • 零基础学Java(第4版)

    零基础学Java(第4版)

    零基础学Java(第4版) 一共分为四篇,共25章,循序渐进地讲述了Java语言的语法规则,Eclipse和MyEclipse开发环境的使用,从基本概念到具体实践、从入门知识到高阶主题、从语法语义到数据结构

    大小:29.7 MBJava学习电子书

  • 神经网络算法与实现:基于Java语言

    神经网络算法与实现:基于Java语言

    本书结合Java编程语言,由浅入深地介绍了神经网络算法的应用,涉及神经网络的构建、神经网络的结构、神经网络的学习、感知机、自组织映射等核心概念,适合对神经网络技术感兴趣的开发人员和业余读者阅读

    大小:32 MB神经网络电子书

  • Java Web应用详解

    Java Web应用详解

    这本书以网络留言板开发为主线将JavaWeb知识融会贯通,知识模块完整,通过静态网页篇、动态网站篇、系统框架篇、项目实战篇循序渐进地使学生全面掌握JavaWeb开发技术,欢迎下载

    大小:74.2 MBJava电子书

  • 《编写高质量代码:改善Java程序的151个建议》源代码

    《编写高质量代码:改善Java程序的151个建议》源代码

    本书是一本关于Java最佳实践的集大成之作,它从Java语言本身、Java程序的架构设计和思想、Java程序的编码规范和习惯等方面对151个经典的问题给出了解决方案,为Java开发者提高开发效率和编写高质量的Java代码提供了宝贵的建议。 封面图 目录 前言 第1章Java开发中通用的方法和准则/1 建议1: 不要在常量和变量中出现易混淆的字母/2 建议2: 莫让常量蜕变成变量/2 建议3: 三元操作符的类型务必一致/3 建议4: 避免带有变长参数的方法重载/4 建议5: 别让

    大小:23.4 MB编写代码配套资源

  • Java EE的轻量级开发利剑:Spring Boot实战

    Java EE的轻量级开发利剑:Spring Boot实战

    内容简介 本书以JavaEE的实践为主题,全面阐述SpringBoot、SpringMVC、SpringCloud等企业级领域内的热门技术。本书讲解相关技术框架的核心知识,并结合汽车管理系统等实战项目,把JavaEE领域内流行的SSH、SSM、SpringBoot、SpringCloud、MyBatis和JPA等框架整合起来,再从代码层面讲述Activiti、Kafka、Redis、Docker、Maven、WebService和POI等经典技术。通过本书深入浅出的讲解,读者在学习Java架构师专业技能的

    大小:26.3 MBJava EE

  • Java在线问题诊断工具:Arthas

    线上系统为何经常出错? 数据库为何屡遭黑手? 业务调用为何频频失败? 连环异常堆栈案,究竟是哪次调用所为? 数百台服务器意外雪崩背后又隐藏着什么? 是软件的扭曲还是硬件的沦丧? 走进科学带你了解 Java线上问题诊断工具。

    大小:820 KBJava诊断

参与送书

学习笔记

24小时50分钟前回答

java后台实现支付宝对账功能的示例代码

完成支付宝支付、查询的接口之后,我们应该还需要定时与支付宝进行对账,以确保商户系统的订单信息是正确的,想知道支付宝支付、查询接口实现过程的亲们,可移步到上一篇有详细过程。 现在我们来讲一下支付宝对账的功能,关于与支付宝交互的关键代码,其实支付宝的API已经讲得很清楚,如果亲们想直接看支付宝API,点击 支付宝对账API ,当然我在文章也会进行说明解释……

4小时24分钟前回答

Java基础教程之Java反射

反射是Java中核心技术之一,这里先不定义什么叫反射,先看一个例子 要求: 1)创建一个person的实例,单不能使用Personperson=newPerson()的方式 2)调用run()方法,也不能使用person.run()方式 我们知道要调用方法必须先要有对象,现在不能通过new关键字来实例化对象,只能通过反射来实现。 上面就实现用反射的方式调用preson类中的方法。可能有人要问了,为什么不直接new出来呢?通过反射……

21小时32分钟前回答

怎样学习Java框架,Java架构总结

很多的Java初学者从前辈的口中和各种资料中经常会听到一个词:Java框架,那么什么是“Java框架”?Java框架又包含哪些内容?今天小编为大家解答一下什么是Java的框架, 怎么学习Java框架 ,主流的Java框架有哪些: 什么是Java框架 所谓的Java框架,简单理解是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为……