- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们希望在一些高性能代码中最小化(如果不是消除的话)对象分配。这在历史 map 的早期版本(版本 2.x)中很大程度上是可能的。在最新版本的 Chronicle Map (3.17.1) 中,我们在使用ExternalMapQueryContext 时看到了显着的分配。我们在这里遵循教程:https://github.com/OpenHFT/Chronicle-Map/blob/master/docs/CM_Tutorial.adoc
这是预期的吗?我们是否使用了正确的方法?
VOInterface voi = VO.get();
try (ExternalMapQueryContext < CharSequence, voi, ? > ctx = map.queryContext(key)) {
if (ctx.readLock().tryLock()) {
MapEntry < CharSequence, voi > entry = ctx.entry();
if (entry != null) {
// Entry is present, return
entry.value().getUsing(voi);
accessor.accessData(voi);
// Key is absent
// Need to unlock, to lock to update lock later. Direct upgrade is forbidden.
ctx.readLock().unlock();
return true;
} else {
accessor.notFound();
// Key is absent
// Need to unlock, to lock to update lock later. Direct upgrade is forbidden.
ctx.readLock().unlock();
return false;
}
}
ctx.updateLock().lock();
MapEntry < CharSequence, voi > entry = ctx.entry();
if (entry != null) {
entry.value().getUsing(voi);
accessor.accessData(voi);
return true;
} else {
accessor.notFound();
return false;
}
}
我们也可以共享分配堆栈的屏幕截图。
最佳答案
我们有一个测试 net.openhft.chronicle.map.ChronicleMapTest#testAcquireLockedPerf 每秒执行数百万次操作。您可以使用以下命令运行它
-Xmx64m -verbose:gc
对于这种情况,尽管有 64 MB 堆,但在预热后,测试不会触发一次 gc,进行数亿次操作。
要弄清楚为什么您的特定案例会产生大量垃圾,需要进行更多调查。
关于java - 使用 ChronicleMap 和ExternalMapQueryContext 进行对象分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008176/
ChronicleMap 理论上最多可以包含多少个条目?可以放入 ChronicleMap 的最大条目数是多少? 最佳答案 理论上的最大值受限于您可以拥有的虚拟内存。这可能低至 128 TB,具体取决
我想玩一下 ChronicleMap,但有点困惑我应该在生产中使用哪个版本。 1.* 看起来像“已发布”,2.* 看起来像处于 alpha 阶段。我会使用发布版本,但根据我的理解,当前文档引用了 al
我正在尝试使用 chronicleMap.parallelStream: myChronicleMap.entrySet().parallelStream().forEach((entry) -> {
OpenHFT 上的 ChronicleMap repository on Github在他们的文档中声明: Chronicle Map implements the java.util.conc
ChronicleMap's GitHub上肯定有免责声明关于 ChronicleMap 中的 Multimaps: Chronicle Map is not... ... No secondary
我们希望在一些高性能代码中最小化(如果不是消除的话)对象分配。这在历史 map 的早期版本(版本 2.x)中很大程度上是可能的。在最新版本的 Chronicle Map (3.17.1) 中,我们在使
不久前,我问过this question关于 ChronicleMap 被用作 Map> 。基本上,我们有一个集合,其中平均值 Set可能是 400,但最大长度是 20,000。对于 Chronicl
我正在学习如何通过使用 Byteable 键和值类来使用 ChronicleMap 3.12。当我使用基于调用堆栈的 ChronicleMap.put 操作循环运行代码时,似乎每次调用 Chronic
我正在使用由 ChronicleMap 支持的 ChronicleSet。我已经做了一些初步测试,它非常适合我们的需求。 RAM 使用效率比其他解决方案高得多,访问时间稍慢,但仍然很快。 但是,我正在
到目前为止,我们已经成功地使用 ChronicleMap 来完成我们想要使用它做的大多数事情,并且大多数数据集都工作得很好。我们的一个用例是将其用作多重 map ,涵盖了这样做的大部分问题。在本例中,
import net.openhft.chronicle.map.ChronicleMap; import java.io.File; import java.io.Serializable; imp
我是一名优秀的程序员,十分优秀!