谈及性能,我们的关注点不再是软件或者系统的功能,而是在其实现功能过程中所表现出来的资源效率。软件高性能设计包含以下
一、池化思想
什么是池化?
简单的说就是设置一个公共对象池,对于其中的对象直接复用而不再使用新创建的方式。
1、JDK 的包装类型值缓存池
Integer::IntegerCache 整形包装类缓存
用于 [-128, 127] 之间数字装箱操作使用。最大值可以通过 "java.lang.Integer.IntegerCache.high" 设置。
第一次使用的时候初始化,其大小可以通过 -XX:AutoBoxCacheMax= 进行设置。
Character::CharacterCache
缓存大小为 size = 127,即存储 [0, 127] 值域的 char 字符。
Long::LongCache
缓存大小 size = -(-128) + 127,即存储 [-128, 127] 值域的 long 值。
Byte::ByteCache
缓存大小 size = -(-128) + 127,即存储 [-128, 127] 值域的 byte 值。
Short::ShortCache
缓存大小 size = -(-128) + 127,即存储 [-128, 127] 值域的 short 值。
2、Netty 内存池
Nett