在Chronicle-map
描述中说:
Chronicle Map提供内存访问速度,并支持超低垃圾回收。 Chronicle Map可以支持最苛刻的应用程序。
支持超低垃圾回收 实际上代表什么?这是否意味着Chronicle地图试图在堆中尽可能少地分配对象?
据我所知,具有低延迟要求的项目试图避免不必要的分配,部分是通过使用无gc集合,部分是通过对象池。其中之一是避免不必要的原始装箱/拆箱。例如,如果您有Map<Long, Entity>
,为了避免创建Long
个对象,您可以使用基于值类型的地图实现,例如TLongObjectMap<Value>
库中的trove
。
然后,使用基元作为键,以这种方式创建chronicle-map
实例是有意义的。可能吗?如果没有,有没有理由不实施这个?
答案 0 :(得分:2)
是的,可以使用docker-compose run --rm <service_name>
而无需在热路径上进行单一分配(即垃圾)。如果您有原始键(或值),则应使用Chronicle Values库促进的flyweight模式。请参阅教程中的Value interfaces instead of boxed primitives部分。