关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
12天前关门了。
改进这个问题
我很难理解如何正确使用这个库,因为它在每个分配中创建垃圾,这似乎就是我的意图?库是否打算与这些特性一起使用?或者我遗漏了什么,还有别的分配方法吗?
例如:
package org.jire;
import net.openhft.chronicle.bytes.Byteable;
import net.openhft.chronicle.bytes.NativeBytesStore;
import net.openhft.chronicle.core.values.IntValue;
import net.openhft.chronicle.values.Values;
public class Test {
public static void main(String[] args) {
NativeBytesStore<Void> store = NativeBytesStore.nativeStoreWithFixedCapacity(4);
while (true) {
IntValue value = Values.newNativeReference(IntValue.class);
((Byteable) value).bytesStore(store, 0, 4);
}
}
}
在yourkit中分析之后,您可以看到有许多分配(垃圾)正在生成:
1条答案
按热度按时间mu0hgdu01#
您需要在堆上至少创建一个示例。
但是,一旦您完成了这项工作,它就可以用作指向本机内存中任何区域的flyweight。
在本例中,数据是堆大小的许多倍,但不使用堆。
与-xmx64m一起运行-verbose:gc -ea 启动时打印一些gc,但运行时不生成任何对象。
现在,为了让您真正感兴趣,您可以将它Map到一个文件,这个文件可以由多个进程同时访问。
印刷品
注意:将数据写入文件并稍后再读取平均只需13纳秒。