使用原语

时间:2018-05-15 09:43:49

标签: java latency chronicle chronicle-map

Chronicle-map描述中说:

  

Chronicle Map提供内存访问速度,并支持超低垃圾回收。 Chronicle Map可以支持最苛刻的应用程序。

支持超低垃圾回收 实际上代表什么?这是否意味着Chronicle地图试图在堆中尽可能少地分配对象?

据我所知,具有低延迟要求的项目试图避免不必要的分配,部分是通过使用无gc集合,部分是通过对象池。其中之一是避免不必要的原始装箱/拆箱。例如,如果您有Map<Long, Entity>,为了避免创建Long个对象,您可以使用基于值类型的地图实现,例如TLongObjectMap<Value>库中的trove

然后,使用基元作为键,以这种方式创建chronicle-map实例是有意义的。可能吗?如果没有,有没有理由不实施这个?

1 个答案:

答案 0 :(得分:2)

是的,可以使用docker-compose run --rm <service_name>而无需在热路径上进行单一分配(即垃圾)。如果您有原始键(或值),则应使用Chronicle Values库促进的flyweight模式。请参阅教程中的Value interfaces instead of boxed primitives部分。