在 Chronicle-map
据说描述:
Chronicle Map provides in-memory access speeds, and supports ultra-low garbage collection. Chronicle Map can support the most demanding of applications.
支持超低垃圾回收实际上代表什么?这是否意味着 Chronicle 映射会尝试在堆中分配尽可能少的对象?
据我所知,具有低延迟要求的项目会尝试避免不必要的分配,部分通过使用无GC的集合,部分通过对象池。其中之一是避免对基元进行不必要的装箱/拆箱。例如,如果您有 Map<Long, Entity>
,以避免创建 Long
对象,您可以使用基于值类型的映射实现,例如 TLongObjectMap<Value>
在trove
图书馆。
那么,创建 chronicle-map
就有意义了。以这种方式实例化,例如使用原语作为键。是否可以?如果没有,有什么原因不实现这个吗?
最佳答案
是的,可以使用ChronicleMap
,而无需在热路径上进行单个分配(即垃圾)。如果您有原始键(或值),则应该使用 Chronicle Values 促进的享元模式图书馆。请参阅Value interfaces instead of boxed primitives教程中的部分。
关于java - 使用基元的编年史 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50347010/