java - 使用基元的编年史 map

标签 java latency chronicle chronicle-map

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/

相关文章:

java - Java 中的近似最小反馈弧集实现

go - Go Prometheus客户端与Python Prometheus客户端获得不同的延迟

Java 历史记录在大量消息时抛出 IllegalStateExecption

阅读后不会删除 java 编年史消息

java - 如何在 Eclipse 的 ListSelectionDialog 中添加多个列?

java - 如何比较类路径上两个类的公共(public) API?

不同目录中的 Java 类路径

c++ - "under the hood"性能理解必读C++文档?

memory - 如何在不测量的情况下获取/计算 GPU 的内存延迟?

java - Chronicle 与 Chronicle-queue 包