Energy-Languages:跨编程语言能耗与内存测量框架

能源科学 2026-10-22 13 阅读

基于 Computer Language Benchmark Game 的 10 个基准、28 种语言实现,提供编译、运行、能耗测量与内存峰值检测的统一操作框架。

这个工具是什么

该仓库来自 greensoftwarelab,以 Computer Language Benchmark Game 的基准程序为案例,收录 10 个基准在 28 种编程语言下的源码。仓库同时提供配套工具,对每个语言的每个基准支持四类操作:编译、执行、能耗测量与内存峰值检测。目录按语言与基准两级组织,每个基准子目录内含源码、Makefile 与可选输入文件;根目录的 RAPL 子文件夹存放能耗测量框架代码,compile_all.py 用于批量执行操作,gen-input.sh 生成 k-nucleotide、reverse-complement、regex-redux 三个基准的输入文件。项目采用 MIT 许可证。

核心能力

  • 覆盖 10 个基准在 28 种语言下的实现,便于在同一基准上横向比较不同语言的能耗表现
  • 每个基准的 Makefile 统一约定 compile、run、measure、mem 四条规则,操作方式清晰可扩展
  • 内置基于 RAPL 的能耗测量框架,并支持内存峰值检测
  • compile_all.py 可按指定规则批量处理同层及以下所有 Makefile,减少重复操作

科研中的典型用法

  • 在语言与能耗关系的实证研究中,对同一基准的不同语言实现分别测量能耗与内存峰值,形成对比数据
  • 作为教学或方法演示,展示如何用统一 Makefile 规则组织多语言基准的编译、运行与测量流程
  • 在新增语言或基准时,按现有目录结构与四条 Makefile 规则接入,复用批量脚本与 RAPL 测量框架

快速上手

使用前需加载 msr 模块以允许 RAPL 访问能耗寄存器:sudo modprobe msr;随后运行 ./gen-input.sh 生成所需输入文件。批量操作通过 python compile_all.py [rule] 执行,rule 可取 compile、run、measure、mem 之一,默认 compile;脚本会对当前目录及以下所有 Makefile 执行该规则。也可进入具体语言或基准目录单独调用。

生态与相近工具

同领域可参考 Computer Language Benchmark Game 官方站点提供的基准与测量结果,以及各类能耗测量工具。本仓库的特点是把多语言基准源码、统一 Makefile 约定与 RAPL 测量整合在一个目录结构中,适合需要自行复现测量流程的场景;若只需现成对比数据,可直接查阅基准游戏官方结果。

项目信息


本文属于《学科研究工具知识库 · 能源科学》第 7 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

评论 共 0 条

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部