您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
Java深度调试技术
字数: 455
出版社: 北京大学
作者: 编者:张民卫|责编:张云静
商品条码: 9787301313602
版次: 1
开本: 16开
页数: 365
出版年份: 2020
印次: 1
定价:
¥89
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
采用Java开发的大型应用系统越来越大、越来越复杂;很多系统甚至是将很多第三方系统集成在一起,整个系统看起来像一个黑盒子。系统运行遭遇问题(系统停止响应,运行越来越慢,或者性能低下,甚至系统core dump),如何迅速命中问题的根本原因是颇具挑战性的任务。 特别的是,有些非功能性的问题只能在生产环境上重现,而生产环境不允许停机维护,这给问题的定位带来巨大的困难。这类问题的定位技巧是本书介绍的重点,借助这些技巧可以快速 找到这些问题的突破口。 本书共有15章,包括Java线程堆栈分析、性能瓶颈分析、内存泄露分析、并发和多线程、幽灵代码、常见Java泥潭、JVM、字符集与编码、常用问题定位工具、Java实践等内容。本书适合Java高级程序员和系统构架师阅读。
作者简介
张民卫,深圳市哈蜜淘科技有限公司·首席技术执行官CTO,曾在华为任职11年(2000~2011),历任软件工程师、系统架构师,技术支持代表。作为华为技术支持体系最高一级(研发支持),主持华为公司所有基于 Java 语言平台的产品的疑难问题技术攻关工作。所支持产品覆盖全球130 多个国家,绝大多时间处理网上事故以及根因分析。在高可靠性(电信领域要求达到99.999%可用性)领域有很深的造诣。
目录
第 1 章 Java 线程堆栈分析 1 1.1 打印线程堆栈 3 1.2 解读线程堆栈 4 1.3 线程堆栈分析的三个视角24 1.3 借助线程堆栈进行问题分析26 第 2 章 通过 Java 线程堆栈进行性能瓶颈分析 43 2.1 基本原理分析44 2.2 常见的性能瓶颈问题50 2.3 性能瓶颈分析的手段和工具51 2.4 性能分析的手段总结59 第 3 章 Java 内存泄漏分析和堆内存设置 62 3.1 Java 内存泄漏的背景知识63 3.2 Java 内存泄漏的症状81 3.3 Java 内存泄漏的定位和分析83 3.4 Java 堆内存泄漏的解决92 3.5 Java 内存和垃圾的回收设置94 第 4 章 关于并发和多线程102 4.1 在什么情况下需要加锁103 4.2 如何加锁104 4.3 多线程编程易犯的错误106 4.4 i++ 这种原子操作是否需要同步保护107 4.5 一个进程拥有的线程多,是否就可以获得更多的 CPU 107 4.6 合理设置线程的数量107 4.7 关于线程池109 4.8 notify 和 wait 的组合 109 4.9 线程的阻塞 113 4.10 Java 线程的优先级 115 4.11 关于多线程的错误观点 115 第 5 章 幽灵代码116 5.1 由异常而导致的函数非自主退出 117 5.2 wait () 与循环123 5.3 Double-Checked Locking 单例模式124 5.4 另一种异常陷阱——连续的关键接口调用 125 第 6 章 常见的 Java 陷阱 127 6.1 不稳定的 Runtime、getRuntime()、exec ()128 6.2 JDK 自带 Timer 的适用场合140 6.3 JDK 自带线程池的陷阱146 6.4 Timer 的使用陷阱146 第 7 章 关于数据库147 7.1 关于数据库表死锁与锁表的问题148 7.2 Oracle 的锁表 / 死锁151 7.3 使用事务的方法153 第 8 章 字符集与编码 154 8.1 字符集155 8.2 编码155 8.3 编码的识别157 8.4 关于编码的转换158 第 9 章 JVM 运行参数解析 160 9.1 Java 运行期参数161 9.2 Java -X 扩展运行参数167 9.3 关于即时编译器(JIT)171 9.4 -Xrunhprof172 9.5 正确的视角看虚拟机180 第 10 章 常用的问题定位工具181 10.1 远程调试 182 10.2 UNIX 下的进行分析利器 proc 182 10.3 UNIX 的进程统计工具 prstat187 10.4 UNIX 的剖析工具 188 10.5 路由跟踪命令 traceroute/tracert 188 10.6 swap 交换分区管理189 10.7 文件类型 / 符号表 189 10.8 Windows 的相关工具 189 第 11 章 计算架构与存储架构191 11.1 计算架构——基于无状态的设计192 11.2 存储架构——数据分片196 11.3 存储架构的总结199 11.4 其他架构的设计建议200 第 12 章 项目生命周期与框架、语言、开源选择202 12.1 以项目时间尺度衡量开发语言的选择 203 12.2 以项目时间尺度衡量开发框架的使用策略 204 12.3 以项目时间尺度衡量开源的选择 205 第 13 章 设计“工业强度”的软件系统207 13.1 长期运行能力的构建 208 13.2 瞬时峰值 / 过载的应对能力构建 208 13.3 池的合理设计 210 13.4 消息系统的设计模型和关键点 215 第 14 章 工程实践221 14.1 关于高端机器的系统部署 222 14.2 关于物理机与虚拟化 222 14.3 关于 Java 进程监控223 14.4 关于 class Loader223 14.5 关于负载控制 224 14.6 关于机器设置多个 IP 的原理 225 14.7 关于日志 225 14.8 异常处理的原则 228 14.9 基于限制的系统部署 / 设计 228 14.10 String 的值不能改变的原因229 14.11 系统出现问题时需要收集的信息 229 14.12 Web Failover 集群的方案 229 14.13 关于可靠性设计232 14.14 实现 JVM Shutdown 钩子函数232 14.15 截取输出流233 14.16 将 Linux 进程绑定在特定的 CPU 上运行234 14.17 关于 Java 和 C++ 的互通 234 第 15 章 常见的案例236 15.1 太多打开的文件 237 15.2 java.lang.StackOverflflowError 239 15.3 java.net.SocketException: Broken pipe 240 15.4 HashMap 的 ConcurrentModiftcationException 241 15.5 多线程场合下 HashMap 导致的无限死循环 242 15.6 Web 系统吊死(挂死)的定位思路 245 15.7 基于消息系统(如 SIP)吊死的定位思路 247 15.8 多线程读 / 写 Socket 导致的数据混乱 247 15.9 CPU 使用率过高问题的定位思路248 15.10 系统运行越来越慢的定位思路251 15.11 系统挂死问题的定位思路 252 15.12 关于线程死亡 / 线程跑飞253 15.13 关于虚拟机 core dump255 15.14 系统运行越来越慢问题的定位思路257 15.15 代码 GC 导致的性能低下 257 15.16 连接池耗尽259 15.17 更改系统时间导致的系统无法正常工作260 15.18 瞬间内存泄漏的定位思路261 15.19 第三方系统能力分析262 15.20 系统性能过低264 15.21 未捕获的异常导致数据库锁表,全系统连锁宕机267 15.22 单机内存泄漏导致数据库锁表,全系统连锁宕机268 15.23 AIX 下 CPU 使用率被 100% 占用的定位思路270 15.24 Linux 下提高 UDP 吞吐量270 15.25 TIME_WAIT 状态下连接不能及时释放270 15.26 由 SAN 存储链路问题引起的应用层白屏 272 附录 A JProfiler 内存泄漏的精确定位 275 附录 B SUN JDK 自带故障定位280 附 B.1 SUN JDK 命令行选项280 附 B.2 诊断工具的详细介绍282 附 B.3 内存泄漏问题的定位317 附 B.4 系统崩溃的定位方法327 附 B.5 致命错误日志335 附录 C Solaris 下查找占用指定的端口的进程351 附录 D 如何在 solaris 下分析 I/O 瓶颈352 附录 E AIX 下 32 位进程的最大内存占有情况353 附录 F 关于 TCP/IP354 附录 G Windows 2003/Windows XP 下一个端口多个监听355 附录 G 在 Windows 2003/Windows XP 下一个端口多个监听356 附录 H Suse 9.0 下线程创建的数量和堆内存 / 永久内存的关系357 附录 I JConsole358 附录 J Gcviewer 359 附录 K IBM JDK 下定位引起 core dump 的 JIT 方法360 附录 L 一份简短的 Java 编程规范 361 参考文献363
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网