实测:落盘字节 = ⌊已写字节 ÷ 缓冲区大小⌋ × 缓冲区大小——写满 3001 行(113728 字节)后崩溃,4KB 缓冲留 2918 行(110592=27×4096),1MB 缓冲留 0 行;级别短路放在格式化之前是 0.2ns/行,放在之后是 181.2ns/行(900 倍);同一行落在 1MB 缓冲/默认 4KB/每行 fflush 上分别是 260/769/8195 ns;行缓冲 64 字节时 snprintf 静默截断而返回值照报 91;全局锁+共享 FILE 比每线程独立文件贵 8.5 倍;文本日志 zlib 后只剩 4.9%–9.5%。
并查集只加"按秩合并"就从 5091ms 掉到 4.2ms(1200 倍),再加路径压缩反而没变快;线段树懒标记与朴素实现查询结果逐位相同;LRU 用 list+哈希 100 万次操作 134ms。
中间插入 10 万次 list 比 vector 快 216 倍,可反转整个表时 vector 又赢 18 倍,遍历差 33 倍——"数组好还是链表好"没有答案,只有工作负载的答案。
n 翻倍耗时到底变几倍、二分在 100 万元素上只要 20 次比较、vector 扩容的 131071 次搬移怎么摊成 1.31、同样 O(n²) 的两种写法差 13 倍——用数字代替直觉。
斐波那契 n=40 朴素递归 196.9ms vs 迭代 0.0001ms;背包一维滚动写成正序时,有 23% 的随机用例结果"碰巧正确";二维降到滚动数组是 62.5MB 变 31KB。
200 万条边的实测:CSR 建图比 vector<vector<int>> 快 7.4 倍、内存省 3 倍;邻接矩阵要 596MB 而邻接表只要 7.6MB;递归 DFS 在 10 万层崩溃而迭代版跑完 500 万层。
4000 组随机币制实测贪心找零有 16.3% 的金额算错;N 皇后位运算版快 10.7 倍且解数与已知值完全一致;区间调度换成"按开始时间"就从 3 变 1。
200 万次查找实测 unordered_map 110.6ms、sorted vector 542.7ms、map 2512.3ms;键步长为 4 时低位散列只用 25% 的桶;空桶率 21.6% 才是正常状态。