CSAPP 性能优化实验室

CsappPerformanceLab

对应 CSAPP 第 5 章「优化程序性能」。交互式分析代码性能瓶颈:调整循环展开因子、观察编译器优化选项(-O0/-O1/-O2)、对比 CPE(每元素周期数)。理解消除低效率、减少过程调用、避免引入额外开销的优化策略。

选择优化策略

void vec_sum(vec_ptr v, data_t *dest) {
    int length = vec_length(v);
    *dest = 0;
    for (int i = 0; i < length; i++) {
        data_t val;
        get_vec_element(v, i, &val);
        *dest += val;
    }
}

调整参数

1x(不展开)4x8x16x

性能分析结果

每元素周期数 (CPE)
42.06
相对性能
1.0x
慢快

💡 优化建议:当前性能较差。建议:1) 消除循环内的过程调用;2) 提高编译器优化级别到 -O2;3) 使用循环展开减少分支开销。

使用说明

  • •调整参数观察行为变化,实时反馈
  • •状态自动编码到 URL,可直接分享给他人
  • •支持键盘操作(Tab 切换、方向键调整)