Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions benchmark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,14 @@ kvlang 是被测对象,**分别在三个 kvspace 后端上各跑一遍,占
|------|------|------|
| `nqueens` | 递归 + 整数位运算 + 分支 | 位掩码回溯,`occ ^ all` 求可用列、`0-avail` 取最低位 |
| `fib` | 调用 / 帧寻址深度 | naive 递归,key 长度随深度增长(对齐 #116) |
| `quicksort` | 数组访问 + 递归 | 显式栈迭代 Lomuto 分区,LCG 造数 |
| `quicksort` | 数组访问 + 递归 | 显式栈迭代 Lomuto 分区,LCG 造数;待排数组与显式栈都落**单个 compact XValue**(`[N]int64`) |
| `binary_search` | 有序表折半 | int 键映射作数组,逐次二分求和 |
| `binary_trees` | 内存分配 + 指针/引用 | L/R 子结点映射建满树,遍历栈跟随指针计数 |
| `hash_table` | 哈希表增删查 | Knuth 乘法散列,插入 + 查找求和 |
| `matmul` | 浮点运算 + 循环优化 | 稠密方阵乘三重循环,float64 校验和 ×1e6 精确对齐 |
| `matmul` | 浮点运算 + 循环优化 | 稠密方阵乘三重循环,float64 校验和 ×1e6 精确对齐;矩阵落**单个 compact XValue**(`[N,N]float64`,storetype=ARRAYND) |
| `k_nucleotide` | 字符串 + 哈希表 | 逐字符 `ord` 入哈希表统计碱基频次 |
| `iops` | 最小寻址单元往返地板价 | 单 key 读-改-写 `a=a+1`,per-op 延迟(对齐 #204,参考基线) |
| `prime_sieve` | 计算 / 控制流密集 | 嵌套 `while` + 取模,O(n²) 内层迭代(参考基线) |
| `matmul_compact` | **数组物理形态**(compact) | 同 `matmul` 算法,矩阵落单个 `[N,N]float64`(storetype=ARRAYND,元素连续打包),对照「每元素一个 key 的散 key map」 |
| `quicksort_compact` | **数组物理形态**(compact) | 同 `quicksort` 算法,待排数组与显式栈都落单个 `[N]int64`,全程在 compact 数组里直接交换 |

kvlang 的性能瓶颈是「PC/帧/局部全落 KV 树、每步一次往返」的架构本质(见 kvlang#194 #204 #116),
不是某个热点函数;`iops`/`prime_sieve` 单独隔离出这条地板价,其余八例是跨语言等价算法对照。
Expand Down
4 changes: 0 additions & 4 deletions benchmark/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,6 @@
"hash_table": [50, 100, 200],
"matmul": [4, 6, 8],
"k_nucleotide": [3, 5, 8],
# 同一算法的 compact 形态:数组落单个 ARRAYND XValue(`[N]T`),而非每元素一个 key 的散 key map。
# 与 matmul / quicksort 同规模、同基线(native 三份与原 case 算法完全一致,仅输出标签不同)。
"matmul_compact": [4, 6, 8],
"quicksort_compact": [32, 64, 128],
}
SCALE_ENV = "BENCH_SCALE" # python/rust/c 从此环境变量读规模
SCALE_TOKEN = "__SCALE__" # kvlang 源码里的规模占位符
Expand Down
Loading