9个版本
0.1.8 | 2024年7月27日 |
---|---|
0.1.7 | 2024年2月12日 |
0.1.6 | 2023年11月24日 |
0.1.5 | 2023年10月9日 |
0.1.3 | 2023年9月24日 |
#211 在 硬件支持
每月145 次下载
17KB
410 行
calcmhz
Rust crate用于估算CPU(处理器)核心频率。可在crates.io上找到。
通过测量依赖链中一系列指令的运行时间来估算CPU频率。指令序列以汇编形式编写,如下所示
addi a1,a1,1
addi a1,a1,1
addi a1,a1,1
addi a1,a1,1
此方法不使用性能计数器(除了墙钟),如果系统上有这样的功能,则估算的频率可能是增强频率,受温度和其他条件影响。
尽管这种方法在大多数情况下都能正常工作,但有一些已知示例表明,这种测量报告的实际运行频率为实际频率的一半(例如,IBM POWER7和POWER8)。还有一个例子表明,这种程序报告的频率是实际频率的两倍:Pentium 4。它以双倍频率运行ALU。
此crate目前支持以下平台
ISA | Linux | macOS | Windows(MSVC) |
---|---|---|---|
aarch64 | ☑ | ☑ | ☑ |
arm | ☑ | ||
i586 | ☑ | ☑ | |
i686 | ☑ | ☑ | |
mips | ☑ | ||
mips64 | ☑ | ||
powerpc | ☑ | ||
powerpc64 | ☑ | ||
riscv64 | ☑ | ||
s390x | 尚未 | ||
sparc | ☑ | ||
sparc64 | ☑ | ||
x86_64 | ☑ | ☑ | ☑ |
示例
let cpu_frequency_in_mhz = calcmhz::mhz().unwrap();
println!("{} MHz", cpu_frequency_in_mhz);
完整文档可在docs.rs中找到。
命令行界面
仓库中cli
目录中的文件提供了一个简单的命令行界面,用于访问此crate的功能。
calcmhz --help
Command line interface for the calcmhz
Usage: calcmhz [OPTIONS]
Options:
-d, --duration <DURATION> Minimum duration to run the test in seconds [default: 500ms]
-l, --loops <LOOPS> Initial number of loops. Automatically increased to exceed the minimum duration [default: 10000]
-h, --help Print help
-V, --version Print version
自动化的Docker镜像
上述命令行实用程序在CI管道中自动构建并发布为Docker容器镜像格式。请访问GitLab容器注册库获取最新标签。
使用示例
podman run -it --rm registry.gitlab.com/tomari/calcmhz:latest
许可证
版权所有 2023 Hisanobu Tomari
根据Apache License,版本2.0(“许可证”);除非遵守许可证规定,否则不得使用此文件。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础提供,不提供任何明示或暗示的保证或条件。有关许可证的具体语言规定权限和限制,请参阅许可证。
依赖关系
~0.3–0.9MB
~20K SLoC