前些天,我发现我和几个同行进行的一系列讨论中,有部分话题是关于在 Linux 系统 JVM 上运行大量线程的性能问题。我并不是说我是这个主题的专家,但我曾经以为掌握得很好的一些知识点却并没有我想的那么无懈可击。之后,我阅读了一些别人推荐 的有关这个主题的书,我不得不承认我原来很多知识点都不知道。这样的情况经常发生,我通常会记下来少数一些我觉得值得研究的资源。 所以,这里是我推荐的阅读列表,给那些正在学习基于 JVM 开发的程序员们阅读,他们需要了解环境的特性,尤其是当遇到和性能以及同步相关的问题时。老实说,我也不能说我阅读了所有的材料。但经过上面提到的和同事 的对话后,我决定下功夫去弥补我知识体系上的缺陷,尽可能多的阅读下面每一本书。并且我认为如果你想学会某一门技艺的话,你必须持续不断的学习和钻研。 ● 《Jave Performance》是这个领域的一本新书,十月份刚出版,却一本不可多得的好书。它涵盖了工具和技术(性能测评,建立基准,性能调试等等),也涵盖了更深的但很少被考虑的技术(如操作系统层次的工具、JIT、垃圾回收等等),甚至包含了处理基于 JAX-RS 的网络应用。 ● 《Java Concurrency in Practice Java 并发编程实战 》对于任何一个想要了解 Java 标准库中内建的并发基础与结构的程序员来说,具有很好的指导作用。即使你不直接处理并发,你也需要了解这本书中阐述的原理。 ● 《What Every Programmer Should Know About Memory 》(这里有 HTML 版本)是一本关于系统内存的系统介绍。你将会学到比你想象得多得多的知识,但也是个痛苦的过程。相信我 ;~) ● 《Linux Kernel Development (3rd Edition) 》 归纳在这个主题内似乎并不恰当,但事实上如果你开发服务器端的应用的话,系统通常都会在 Linux 系统上运行。它似乎是最这个主题的书,虽然我不是这个方面的专家。不管怎样,都值得探索 Linux 内核发生了什么。我不建议你一口气读完这本书,除非你非常想要这么做–毕竟这是一本写的很好的书——至少读一读关于进程管理和进程调度。还有虚拟操作系统 以及I/O的章节也非常值得浏览。 |