当前位置: 首页 > news >正文

基于莱布尼茨公式的编程语言计算性能基准测试

利用莱布尼茨公式(Leibniz formula)计算圆周率 $\pi$。尽管在现代数学计算库中,莱布尼茨级数因其收敛速度极慢而鲜被用于实际精算 Π 值,但其算法结构——高密度的浮点运算、紧凑的循环逻辑以及对算术逻辑单元(ALU)的持续压力——使其成为测试 CPU 单核吞吐量、浮点运算单元(FPU)效率以及编译器自动向量化(Auto-vectorization)能力的绝佳“试金石” 。

GitHub 开源项目 niklas-heer/speed-comparison 在 2025 年 12 月产生的最新数据,涵盖了从底层系统级语言(如 C++、Rust)到托管型语言(如 Java、C#),再到动态解释型语言(如 Python、Ruby)的 62 种不同实现。通过对 10 亿次迭代运算的详尽分析,我们不仅试图排列出“谁最快”,更致力于揭示“为什么快”背后的深层技术逻辑,探讨单指令多数据(SIMD)技术、即时编译(JIT)机制以及内存模型对计算性能的决定性影响。

Speed comparison chart

上图来自:https://niklas-heer.github.io/speed-comparison/

莱布尼茨公式,作为 arctan(x) 的泰勒级数在 x=1时的特例,其数学表达为:

image

从算法实现的角度审视,该公式具有以下显著特征,这些特征直接决定了其作为基准测试的有效性:

  1. 极端的计算密集度:算法核心仅包含基本的加、减、乘、除运算,几乎不涉及复杂的内存分配或系统调用(System Calls)。这使得测试结果能够高度纯粹地反映语言运行时的计算开销和指令生成质量 。

  2. 可预测的分支逻辑:公式中的符号交替项 (-1)^k 引入了潜在的分支预测(Branch Prediction)挑战。朴素的实现可能会在循环内部使用 if (i % 2 == 0) 判断奇偶性,这将导致大量的 CPU 分支预测失败,从而严重拖慢流水线。而高效的实现通常采用无分支(Branchless)技巧,利用位运算或数学变换来消除条件跳转,这考验了程序员对底层硬件的理解以及编译器的优化智能 。

  3. 浮点精度与收敛性:虽然本基准测试明确声明“不关注 pi的精确度”,仅关注运算速度,但浮点数(IEEE 754 标准)的累加特性使得计算顺序对结果有微小影响。编译器是否开启 -ffast-math 等激进优化选项(允许改变浮点结合律)对性能有着数量级的影响,这成为了不同语言实现之间性能差异的主要变量之一 。

基于 2025 年 12 月的最新基准测试数据,我们将 62 种语言实现划分为四个具有显著特征的性能梯队。

第一梯队:极限性能层 (< 300ms) —— 编译器的极致

这一梯队的语言代表了当前通用 CPU 单核计算的物理极限。它们几乎完全消除了语言本身的运行时开销,性能瓶颈仅在于 CPU 的 ALU 吞吐量和内存带宽。

深度剖析:

第二梯队:亚秒级高性能层 (300ms - 1000ms) —— 标量优化的极限

这一梯队的语言性能非常出色,通常在 0.5 秒到 1 秒之间。它们大多生成了高效的机器码,但因未开启激进的 SIMD 优化或受到运行时轻微拖累,未能进入第一梯队。

深度剖析:

第三梯队:解释与混合层 (1s - 5s) —— JIT 的战场

这一梯队主要包含动态类型语言的高性能 JIT 实现,或启动开销较大的静态语言环境。

深度剖析:

第四梯队:纯解释器层 (> 10s) —— 动态类型的代价

最慢的梯队,主要是未优化的脚本语言解释器。

深度剖析:

C#:.NET Core 的高性能复兴

在本次测试中,C# (SIMD) 的表现(227ms)是最令人瞩目的亮点之一。这主要归功于.NET Core(现称为.NET 5/6/7+)引入的硬件内建支持(Hardware Intrinsics)。


http://www.jsqmd.com/news/149839/

相关文章:

  • day46(12.27)——leetcode面试经典150
  • WordPress漏洞研究:从核心到插件的安全攻防指南
  • Audio Summary插件:语音模型效果可视化
  • TimeMixer模型:TensorFlow混合架构尝试
  • 12月23号
  • 地磅定制企业工厂2025推荐榜单 - 栗子测评
  • 20251227
  • Kubernetes Operator设计:自动化TensorFlow作业调度
  • 毕业设计项目 stm32智能鱼缸监控投喂系统(源码+硬件+论文)
  • 2025上海铝单板厂家哪家好?看这份热转印木纹厂家实力榜单 - 栗子测评
  • 12月25号
  • 2025义乌工装设计哪家好?义乌办公室装修设计公司口碑榜 - 栗子测评
  • Autoformer时序分解思想TensorFlow实现
  • Kaggle竞赛冠军方案:TensorFlow使用频率统计
  • 12月26号
  • 对比学习Contrastive Learning框架搭建
  • 2025喷码机厂家TOP10机构测评 - 栗子测评
  • 2025低露点除湿空调品牌厂家知名品牌排行榜 - 栗子测评
  • 蒙特卡洛Dropout:TensorFlow不确定性估计
  • 电子汽车衡厂家生产企业2025排名榜单 - 栗子测评
  • 基于STM32单片机RFID技术的水果贮藏质量追溯无线设计DIY21-688
  • 2025小字符喷码机厂家综合实力榜单 - 栗子测评
  • CSS相关中文书籍
  • 2025行吊厂家推荐盘点 - 栗子测评
  • 人工智能之数学基础 信息论:第四章 应用延伸
  • Prometheus + Grafana监控TensorFlow GPU指标
  • PyTorch Lightning与TensorFlow Keras谁更适合团队协作?
  • Sidecar不就是在Pod里多跑一个容器吗!
  • springboot个性化服装搭配推荐小程序 穿搭_93n6ts16
  • 【ELK】分布式日志平台搭建全攻略 - 详解