Java Performance
文章平均质量分 80
dm_vincent
这个作者很懒,什么都没留下…
展开
-
[Java Performance] Java垃圾回收简介
本系列作为Java Performance:The Definitive Guide的读书笔记。概览在目前的JVM中,主要有4中垃圾回收器(Garbage Collector):串行回收器(Serial Collector),主要用于单核计算机吞吐量(并行)回收器(Throughput/Parallel Collector)并发回收器(Concurrent/CMS Co原创 2014-09-21 15:24:23 · 4392 阅读 · 0 评论 -
[JavaEE - JPA] 性能优化: 如何定位性能问题
要想解决性能问题,首先得要有办法定位问题。而JPA的性能问题,可以说99%都是因为JPA Provider(一般使用的都是Hibernate,或者EclipseLink)生成的SQL效率低下或者生成并执行了你意料之外的SQL。针对这个问题,其实不需要多么复杂的调试工具,一般而言JPA Provider就会提供一些基础的性能分析工具,以Hibernate为例(EclipseLink等其它JPA Pro原创 2016-12-03 19:26:07 · 11109 阅读 · 5 评论 -
[Java Performance] 数据库性能最佳实践 - JPA和读写优化
数据库性能最佳实践当应用需要连接数据库时,那么应用的性能就可能收到数据库性能的影响。比如当数据库的I/O能力存在限制,或者因缺失了索引而导致执行的SQL语句需要对整张表进行遍历。对于这些问题,仅仅对应用代码进行优化可能是不够,还需要了解数据库的知识和特点。示例数据库该数据库表示了128只股票在1年内(261个工作日)的股价信息。其中有两张表:STOCKPRICE和S原创 2014-10-20 10:06:07 · 17737 阅读 · 0 评论 -
[Java Performance] JVM 线程调优
调整线程栈空间当非常缺少内存时,可以调整线程使用的内存。每个线程都有一个栈,用来记录该线程的调用栈信息。线程中的栈的默认空间是有OS和JVM的版本决定的:OS32-bit64-bitLinux320 KB1 MBMac OSN/A1 MBSolaris Sparc512 KB1 MBSo原创 2014-10-10 18:09:18 · 5046 阅读 · 0 评论 -
[Java 并发] Java并发编程实践 思维导图 - 第三章 对象的共享
根据《Java并发编程实践》一书整理的思维导图。原创 2014-11-13 10:11:22 · 5704 阅读 · 1 评论 -
[Java Performance] 数据库性能最佳实践 - JPA缓存
JPA缓存(JPA Caching)JPA有两种类型的缓存:EntityManager自身就是一种缓存。事务中从数据库获取的和写入到数据库的数据会被缓存(什么样的数据会被缓存,在后面有介绍)。在一个程序中也许会有很多个不同的EntityManager实例,每一个实例运行着不同的事务,拥有着它们自己的缓存。当EntityManager提交一个事务后,它缓存的所有数据就会被原创 2014-10-22 10:13:21 · 11782 阅读 · 1 评论 -
[Java Performance] Java集合API
Java集合APIJava 7提供了至少58个功能和实现各异的集合类型,在不同的场景下选择合适的集合类型十分重要。因为,程序的性能和集合类型的选择有莫大的关联。关于选择哪个集合类型,第一个需要考虑的就是程序使用的算法和操作方式。实际上这就是从数据结构的出发点来看问题,和使用的语言无关。比如,LinkedList不适合用在搜索操作较多的场合;如果需要以O(1)的开销从集合中得原创 2014-09-27 10:37:59 · 4002 阅读 · 0 评论 -
[Java Performance] 缓冲I/O(Buffered I/O)
缓冲I/O(Buffered I/O)InputStream.read()以及OutputStream.write()操作的对象是单个字节。根据它们访问的资源的不同,使用这些方法可能会相当慢。比如在使用FileInputStream.read()时,速度会慢的令人发指。因为每次调用都会访问操作系统的内核去拿到1个字节的数据。在现代的操作系统中,内核往往会使用缓冲I/O实现,因此这个原创 2014-09-25 23:08:03 · 4256 阅读 · 0 评论 -
[Java Performance] 字符串拼接注意事项
字符串拼接(String Concatenation)// 编译器优化前String answer = integerPart + "." + mantissa;// 编译器优化后String answer = new StringBuilder(integerPart).append(".").append(mantissa).toString();因为编译器会对字符串的原创 2014-09-26 12:32:53 · 4129 阅读 · 0 评论 -
[Java Performance] JIT编译器简介
使用JIT(Just-In-Time)编译器JIT编译器概览JIT编译器是JVM的核心。它对于程序性能的影响最大。CPU只能执行汇编代码或者二进制代码,所有程序都需要被翻译成它们,然后才能被CPU执行。C++以及Fortran这类编译型语言都会通过一个静态的编译器将程序编译成CPU相关的二进制代码。PHP以及Perl这列语言则是解释型语言,只需要安装正确的解释器,它们就能运行在原创 2014-09-24 22:07:28 · 10413 阅读 · 4 评论 -
JDK 8 函数式编程最佳实践
文章导航JDK 8 函数式编程最佳实践1. Lambda表达式的重要接口1.1 新增的函数接口1.1 无参数,无返回值类型接口1.2 无参数,有返回值类型接口1.3 有参数,也有返回值的类型接口2. 方法引用2.1 静态方法引用2.2 实例方法引用2.3 构造方法引用3. 使用Lambda表达式完成集合的规约操作3.1 成为一个单值类型3.2 成为一个集合类型3.3 stream和parallel...原创 2019-07-12 21:05:12 · 2001 阅读 · 0 评论