高性能编程论述
高性能编程 前言 首先说一下我为什么要写这篇博客。因为面试有提到这个,我当时直接说不懂(一方面当时心态很差,另一方面面试官的询问方式令我很反感。所以直接refuse了。小伙伴们千万别学我)。 所以,打算谈一谈我对Java高性能编程方面的认识与总结。 首先,高性能编程不涉及架构层次。所以打算通过这篇文章,来了解架构提升系统性能的小伙伴要失望了。我将Java高性能编程主要分为编码与网络两个部分(说白了,只关注编码,不提其它)。 其次,我们需要了解何为高性能。性能往往与系统的吞吐量,响应时间,并发量等息息相关。只有了解到这点,我们才可以对症下药。 网络部分:BIO,NIO,Netty等,这部分在之前的《 从BIO到Netty的演变 》有所提及,这里不再赘述。 而编码部分,也是最多人关注的部分。我将它按层次分为: 数据结构(如String,StringBuffer,StringBuilder) 语言特性(如for循环的JIT优化,并行流等) 算法(如分治算法,贪心算法等) 设计模式(如原型模式) 多线程(包括线程池,锁等) 扩展-特定机制(其实就是一些成熟的方案) 并发容器被归类到多线程中,而Fork/Join框架被归类到特定机制(当然,也可以归类到算法,多线程等。取决于看待它的角度)。 由于这其中每个分支,拆分出来都是很大的一块内容。所以这篇文章的目标只是给个方向而已,不会写得非常深入。