BenchMark大全
知名基准测试一览:
序号 | 基准测试名称 | 用途 | 开源 | 日期 | 链接 | 许可证 | ||||
---|---|---|---|---|---|---|---|---|---|---|
1 | SPEC CPU® 2006 | 测试计算机系统的整数和浮点运算性能,广泛用于编译器和处理器评估。 | ❌ | SPEC | ||||||
2 | SPEC CPU® 2017 | 更新版的 SPEC CPU 套件,测试计算密集型负载在现代 CPU 系统上的表现。 | ❌ | SPEC | ||||||
3 | SPEC ACCEL® 2023 | 测试 OpenACC 和 OpenMP 目标卸载 API 的并行应用程序性能。 | ❌ | SPEC | ||||||
4 | MiBench | 针对嵌入式系统的免费商业应用程序基准测试套件,包含六大类应用程序。 | ✅ | 2001 | https://vhosts.eecs.umich.edu/mibench/source.html | GPL | ||||
5 | EMBENCH | 为嵌入式系统设计的现代开源基准测试,替代 Dhrystone / CoreMark。 | ✅ | 2017 | https://github.com/embench/embench-iot | GPL-3.0 | ||||
6 | CBENCH | 基于 MiBench 的嵌入式基准集合,常用于评估编译优化效果。 | ✅ | 2018 | https://github.com/aorogat/CBench | Apache-2.0 | ||||
7 | PolyBench | 嵌套循环程序集合,用于研究循环优化,如循环变换、嵌套等。 | ✅ | 2016 | https://github.com/MatthiasJReisinger/PolyBenchC-4.2.1 | Ohio | ||||
8 | NAS Parallel Benchmarks (NPB) | 并行计算基准程序集合,由 NASA 开发,广泛用于高性能计算研究。 | ✅ | https://www.nas.nasa.gov/software/npb.html | NOSA | |||||
9 | LMBench | 微基准测试工具,测试系统延迟、内存、进程管理等性能。 | ✅ | 1996 | ||||||
10 | IOZone | 文件系统性能测试工具,适用于多平台文件 I/O 分析。 | ✅ | |||||||
11 | STREAM | 测试内存带宽的简洁基准程序,用于衡量内存子系统性能。 | ✅ | |||||||
12 | SPECjvm2008 | 测试 Java 虚拟机性能的一组应用程序集合。 | ❌ | |||||||
13 | SPECpower_ssj2008 | 测试服务器负载下的性能与功耗比(能效)。 | ❌ | |||||||
14 | SPEC SFS® 2014 | 模拟文件服务器(NFS 等)负载,用于测试 I/O 服务器性能。 | ❌ | |||||||
15 | Phoronix Test Suite | 开源测试平台,提供系统、图形、I/O、处理器等多方面的基准集合。 | ✅ | |||||||
16 | Fio | 高度可配置的 I/O 性能测试工具,广泛用于存储系统的基准分析。 | ✅ | |||||||
17 | Bonnie++ | 测试文件系统数据吞吐、随机读写、查找性能等。 | ✅ | |||||||
18 | TPC-C | 模拟在线事务处理的数据库性能测试标准。 | ❌ | |||||||
19 | TPC-H | 决策支持系统的数据库基准测试,含复杂 SQL 查询和分析。 | ❌ | |||||||
20 | PARSEC | 并行多线程程序集,评估多核系统性能表现,常用于编译器研究。 | ✅ | |||||||
21 | Rodinia | 面向异构系统(如 GPU)的高性能计算程序集合,涵盖图处理、科学计算等。 | ✅ | 2016 | https://github.com/kiliakis/gpu-rodinia-3.1 | Virginia | ||||
22 | Gromacs | 用于分子动力学模拟的基准测试,广泛用于科学计算中。 | ✅ | 1991 | https://www.gromacs.org | GPL-2.0 | ||||
23 | HPCG | 用于高性能计算(HPC)系统的基准测试,专注于并行性能。 | ✅ | 2014 | https://www.hpcg-benchmark.org/ | BSD | ||||
24 | Sequoia | 主要用于并行计算性能评估,适用于大规模并行系统。 | ✅ | https://github.com/StanfordLegion/Sequoia | BSD-3.0 | |||||
25 | C-ray | 基于光线追踪的基准,测试CPU在计算机图形渲染中的性能。 | ✅ | 2018 | https://github.com/dvdhrm/c-ray | MIT | ||||
26 | Alderley | 多线程的CPU基准,专注于多核和多线程处理性能评估。 | ✅ | 2020 | https://github.com/berkeleylab/alderley | BSD-3.0 | ||||
SPEC 的一些基准测试可以申请非商用许可证,但是基本都含有:==材料仅可用于生成关于计算机系统性能的测量和分析数据==,所以慎用!
提供一个爬取 git 上 benchmark 信息的脚本:
import requests
import argparse
GITHUB_API = "https://api.github.com/search/repositories"
headers = {
# "Authorization": "token YOUR_GITHUB_TOKEN"
}
def search_benchmark_repos(languages):
all_results = {}
for lang in languages:
params = {
"q": f"benchmark language:{lang} in:name,description,topics",
"sort": "stars",
"order": "desc",
"per_page": 100
}
response = requests.get(GITHUB_API, params=params, headers=headers)
if response.status_code == 200:
data = response.json()
for repo in data["items"]:
key = repo["html_url"]
if key not in all_results:
all_results[key] = {
"name": repo["full_name"],
"stars": repo["stargazers_count"],
"desc": repo["description"] or "",
"url": repo["html_url"],
"updated": repo["updated_at"]
}
else:
print(f"❌ Failed to fetch for language {lang}: {response.status_code}")
# 按 star 排序并输出
sorted_repos = sorted(all_results.values(), key=lambda x: x["stars"], reverse=True)
for repo in sorted_repos:
print(f"{repo['name']} | 🌟 {repo['stars']} | {repo['desc'][:60]} | 🔗 {repo['url']} | 📅 {repo['updated']}")
def parse_args():
parser = argparse.ArgumentParser(description="Search GitHub benchmark projects by multiple languages.")
parser.add_argument(
"--languages",
nargs="+",
default=["C", "C++", "Fortran"],
help="List of programming languages (e.g. --languages C C++ Fortran)"
)
return parser.parse_args()
if __name__ == "__main__":
args = parse_args()
search_benchmark_repos(args.languages)
评论