告别龟速配置:利用Makefile并行化构建过程

2025-04-26

作者Tavian Barnes吐槽了现有构建系统(Autoconf、CMake、Meson等)配置阶段的低效,其耗时远超构建阶段。他提出了一种基于Makefile的并行化解决方案,通过将配置过程分解成多个可并行执行的任务,显著提升了效率。核心思想是利用make的并行能力,将原本串行的编译器测试任务并行化,最终将配置时间从38秒缩短到0.4秒。文中详细介绍了实现方法,包括辅助脚本、Makefile编写技巧以及并行化策略。这篇文章对于追求构建速度的开发者具有重要的参考价值。

阅读更多
开发

Alder Lake处理器SHLX指令的诡异性能差异

2025-01-02

博主Tavian Barnes发现Intel Alder Lake处理器的SHLX指令存在奇怪的性能问题:在特定情况下,该指令的执行速度会异常缓慢,达到普通情况下的三倍。通过编写基准测试程序,他发现使用64位立即数初始化移位计数寄存器会导致性能下降,而使用32位指令或其他方式初始化则不会。这种差异令人费解,因为SHLX指令只关注移位计数寄存器的低6位。目前尚无明确解释,但这一发现揭示了Alder Lake处理器微架构中潜在的优化不足。

阅读更多
硬件 指令延迟

百分比四舍五入

2024-07-01

本文讨论了在用户界面中显示下载进度时,如何对百分比进行四舍五入才能更清晰地表示进度。作者建议,0% 应该表示下载尚未开始,100% 应该表示下载完全完成,而不是接近完成。作者还提供了一些代码示例,展示了如何使用整数除法和浮点数来实现这种四舍五入方式。

阅读更多