使用基元的编年史地图

Chronicle map using primitives

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-free 集合,部分是通过对象池。其中之一是避免不必要的 boxing/unboxing 原语。例如,如果你有一个 Map<Long, Entity>,为了避免创建 Long 对象,你可以使用基于值类型的映射实现,比如 trove 库中的 TLongObjectMap<Value>

那么以这种方式创建 chronicle-map 实例是有意义的,例如,使用基元作为键。可能吗?如果没有,是否有任何不实施的原因?

是的,这可以使用 ChronicleMap 而无需在热路径上进行单个分配(即垃圾)。如果您有原始键(或值),则应使用本教程中 Chronicle Values library. See Value interfaces instead of boxed primitives 部分提供的享元模式。