返回首页
最新
什么是ChaosTree?<p>ChaosTree是一个零依赖的Java排序集合/映射库,基于多种树的实现构建。<p>它提供了以下实现:
- AVL树
- 红黑树
- B树
- B+树<p>我没有创建自定义API,因为它实现了NavigableSet、NavigableMap、SequencedSet和SequencedMap。我的自定义API包括:
- buildFromSorted(Iterator> it, float factor)
- importFlatMatrix(Object[][] blast, float factor)
- Object[][] exportFlatMatrix()<p>我开始开发ChaosTree是因为我想探索数据结构的学习深度。它最初作为7种集合类型树的首次发布,配有自定义API。随着我对这个项目的深入,我转向了映射。在从集合切换到映射的过程中,发生了巨大的变化和知识升级,我将我的树的限制从jdk11+支持提升到了jdk21+,并密切关注无依赖性、内存布局、分配、JVM行为和实际性能。<p>我实验的一些内容包括:
- 不同的节点布局和元数据占用
- CRTP/F界限多态性用于树的实现
- 父指针与无父节点
- 基于数组的N叉树节点
- B树/B+树的度选择
- JMH基准测试和JFR分析
- 针对java.util.TreeMap/TreeSet的差异化/随机化测试<p>经过这些艰难的测试,它还通过了以下测试:<p>- Guava Testlib兼容性测试
- jqwik基于属性的测试
- 针对参考集合的随机化差异测试
- 树节点的白盒结构验证
- B树/B+树结构不变量的直接验证
- 异常和迭代器契约测试
- 序列化和克隆测试
- N叉树使用自定义jqwik测试进行API验证。<p>尾延迟行为在此未显示,因为它被截断为简单文本,导致数据读取错误:<a href="https://chaos-vy.github.io/ChaosTree/utils/JMH-Report.html" rel="nofollow">https://chaos-vy.github.io/ChaosTree/utils/JMH-Report.html</a>
我还对我的N叉树进行了与官方JDK TreeMap更新的基准测试。<p>GitHub:
<a href="https://github.com/Chaos-vy/ChaosTree" rel="nofollow">https://github.com/Chaos-vy/ChaosTree</a>
<a href="https://chaos-vy.github.io/ChaosTree/" rel="nofollow">https://chaos-vy.github.io/ChaosTree/</a><p>我特别希望能收到关于API设计、实现选择和基准测试方法的反馈。目前我正在尝试截断无用和复杂的分支,以进行性能调优。
Sentralis.io 是一个专注于加密货币投资组合持有者(HODLers)的风险与情景分析平台。它结合了强大的风险分析能力和智能代理,提供深度洞察,适合初学者和专业人士使用。免费账户可以全面访问所有情景和风险量化功能。同时,也提供 API 和 MCP 访问权限。
系好安全带,固定好餐盘桌,拉上窗帘。现在,您可以模拟作为商业乘客在世界任何地方飞行,从起飞到着陆。包括地形、天气和实时太阳位置。别担心,最新版本现在增加了腿部功能,您可以在长途飞行中起身去洗手间。祝您玩得愉快!
已经有一段时间了,我无法在电子邮件正文中输入双引号 ""。这种情况只发生在我的笔记本电脑上(Framework/Fedora)使用Firefox时。安卓应用没有问题。