文章目录
  1. 1. super pi 介绍
    1. 1.1. 1. 单进程
    2. 1.2. 2. 多进程

super pi 介绍

通过计算指定位数的圆周率π小数点的位数, 统计时间, 即可得知当前CPU的性能, 花费时间越短, 性能越优秀。

Linux下可以直接用shell的反正切函数去计算, 如下计算5000位所用时间, 命令如下:

time echo "scale=5000; 4*a(1)" | bc -l -q

super pi默认只会使用一个cpu核心去运行, 这个样并不能测试出cpu的实际性能, 因此通常我们都是测试一个进程和多个进程的结果来衡量CPU的性能。

1. 单进程

只跑一个super pi 进行测试, 获取最终计算消耗的时间, 越少越好。

$: time echo "scale=5000; 4*a(1)" | bc -l -q

2. 多进程

跑满所有CPU核心, 一个核心一个进程, 使用进程绑定, 获取所有进程结果的平均值。

#!/usr/bin/env bash
cpu_c= `cat /proc/cpuinfo | grep process | wc -l`
need_run_cpu_num=$(($cpu_c-1))
for cpu_seq in `seq 0 $need_run_cpu_num` ; do
time echo "scale=${bits}; 4*a(1)" | taskset -c ${cpu_seq} bc -l -q &>1 | grep '^[rus]'
done

由于super pi 测试很快, 为了排除干扰, 提高准确性, 通常进行多测测试, 取平均值。 通常5000位大概需要花费20多秒的时间。

#!/usr/bin/env bash
for i in `seq $20` ; do
time echo "scale=500000000; 4*a(1)"|bc -l -q &
done

本文作者: GeekerHua
本文链接: https://blog.geekerhua.com/super_pi/
文章首发: 同步首发于 语雀GeekerHua的blog
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

文章目录
  1. 1. super pi 介绍
    1. 1.1. 1. 单进程
    2. 1.2. 2. 多进程