2026-10-13 软件 把 BadgerDB 移植到仓颉(四):怎样测才算数 从 Go 移植 BadgerDB 到仓颉(四) 四个方法学缺陷、Go 侧三个陷阱,与一套可核验的流程 Cangjie · 基准测试 · 方法论 这是系列最后一篇。第三篇讲了三个被推翻的结论 , 本篇追问:它们为什么会错,以及怎样才能不再错。 Continue reading...
2026-10-12 软件 把 BadgerDB 移植到仓颉(三):重跑基准,三个结论翻了 从 Go 移植 BadgerDB 到仓颉(三) 重跑一遍基准,三个结论都翻了 Cangjie · 基准测试 · badger-cj 这是系列第三篇。前两篇讲实现 与优化 , 本篇讲复核:把积累半年的基准数据重跑一遍之后,有三条结论被推翻, 而且方向都是反的。 Continue reading...
2026-10-11 软件 把 BadgerDB 移植到仓颉(二):十次优化与一次误判 从 Go 移植 BadgerDB 到仓颉(二) 十次优化,和一次「我以为是编译器 bug」的乌龙 Cangjie · 性能优化 · badger-cj 这是系列第二篇。第一篇讲无锁跳表的实现 , 本篇讲怎么把它调快,以及一个把我引向错误方向的排查。 Continue reading...
2026-10-10 软件 把 BadgerDB 移植到仓颉(一):没有裸指针怎么做无锁跳表 从 Go 移植 BadgerDB 到仓颉(一) 仓颉没有裸指针,于是我把节点指针换成了数组下标 Cangjie · LSM-Tree · badger-cj · 移植 这是系列第一篇,讲怎么把它写出来:语言差异怎么绕、以及怎么用。 后续三篇分别讲优化与误判、基准复核、以及怎样测才算数。 Continue reading...