-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Memory overhead zh CN
tydhot edited this page Sep 6, 2020
·
1 revision
内存开销测试通过Java Agent for Memory Measurements来计算运行时内存。这个大小可能受到引用压缩,对象填充等JVM因素影响。这个基准测试可以通过gradle memoryOverhead
来执行内存基准测试。
通过在Java 5的ConcurrentHashMap上进行分支开发,Guava在每个缓存元素的所消耗的内存进行了优化。当使用软引用和弱饮用的时候这点优势会更加明显。因为Caffeine 是基于Java 8的ConcurrentHashMap进行封装的,需要额外的字段去移除一个被回收的字段。
Caffeine将会基于用法懒加载或是动态调整器内部的数据结构大小。这减少了内存开销并可以在使用量增加的时候(比如吞吐量)方便追加内存占用。
Cache | Baseline | Entry |
---|---|---|
Caffeine | 264 bytes | 54 bytes (56 aligned) |
Guava | 1,032 bytes | 58 bytes (64 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,112 bytes | 74 bytes (80 aligned) |
Guava | 1,384 bytes | 74 bytes (80 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,152 bytes | 82 bytes (88 aligned) |
Guava | 1,384 bytes | 74 bytes (80 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,176 bytes | 90 bytes (96 aligned) |
Guava | 1,544 bytes | 90 bytes (96 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,168 bytes | 90 bytes (96 aligned) |
Guava | 27,200 bytes (?) | 90 bytes (96 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,120 bytes | 82 bytes (88 aligned) |
Guava | 1,376 bytes | 74 bytes (80 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,008 bytes | 82 bytes (88 aligned) |
Guava | 1,384 bytes | 74 bytes (80 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,008 bytes | 82 bytes (88 aligned) |
Guava | 1,192 bytes | 74 bytes (80 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 1,048 bytes | 98 bytes (104 aligned) |
Guava | 1,544 bytes | 90 bytes (96 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 560 bytes | 98 bytes (104 aligned) |
Guava | 1,240 bytes | 66 bytes (72 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 560 bytes | 98 bytes (104 aligned) |
Guava | 1,240 bytes | 74 bytes (80 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 616 bytes | 130 bytes (136 aligned) |
Guava | 1,416 bytes | 82 bytes (88 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 616 bytes | 146 bytes (152 aligned) |
Guava | 1,416 bytes | 98 bytes (104 aligned) |
Cache | Baseline | Entry |
---|---|---|
Caffeine | 560 bytes | 114 bytes (120 aligned) |
Guava | 1,240 bytes | 90 bytes (96 aligned) |