4 个稳定版本
1.3.1 | 2024年2月16日 |
---|---|
1.2.0 | 2023年7月5日 |
1.1.1 | 2023年2月14日 |
3 in #estimate
12KB
217 代码行数(不含注释)
VJoule API
这是一个用于与 vJoule 服务通信的库。此 API 提供简化函数来管理 cgroup,并检索估算的消耗。
简单示例
extern crate vjoule_api;
use std::thread;
use std::time::Duration;
use vjoule_api::VJouleAPI;
use vjoule_api::vjoule_api::error::VJouleError;
fn compute_pi (prec : u64)-> f64 {
let mut res = 0.0;
for i in 0 .. prec {
res += (4.0 / prec as f64) / (1.0 + ((i as f64 - 0.5) * (1.0 / prec as f64)) * ((i as f64 - 0.5) * (1.0 / prec as f64)))
}
res
}
fn test_pi (api : &mut VJouleAPI, prec : u64)-> Result<ConsumptionDiff, VJouleError> {
let m_beg = api.get_current_machine_consumption ()?;
let pi = compute_pi (prec);
let m_end = api.get_current_machine_consumption_no_force ()?;
let m_diff = m_end - m_beg;
println!("PI : {}", pi);
println!("{}", m_diff);
Ok (m_diff)
}
fn run_pi (mut api : &mut VJouleAPI) {
match test_pi (&mut api) {
Err (s) => {
println!("Pi error : {}", s);
}
Ok (_) => {}
}
}
fn main() {
let api = vjoule_api::VJouleAPI::new ();
match api {
Ok (mut api) => {
let a = run_pi (&mut api, 100000000);
let b = run_pi (&mut api, 200000000);
match (a, b) {
(Ok (x), Ok (y)) => {
println!("{}", x % y);
}
_ => {}
}
}
Err (s) => {
println!("{}", s);
}
}
}
依赖项
~1.3–1.8MB
~26K SLoC