アプリがアイドリング中に CPU を消費していないか、重い処理を行った際の負荷状況を監視します。
1. 外部ツールによる監視
OS 標準のモニターで確認するのが最も確実です。
- Windows: タスクマネージャー / リソースモニター
- macOS: アクティビティモニタ
- 「エネルギー」タブを見ることで、バッテリー消費への影響も推測できます。
- Linux:
top,htop
2. アプリ内での自己監視
Rust 側 (src-tauri/src/lib.rs) で sysinfo を使い、自身のプロセスの CPU 使用率を取得してログ出力あるいはフロントエンドに送信します。
まず、src-tauri ディレクトリで以下のコマンドを実行してクレートを追加します。
cargo add sysinfo
以下は実装例です。
use sysinfo::{Pid, System};
use std::thread;
use std::time::Duration;
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.setup(|_app| {
// アプリ起動時に監視スレッドを開始
monitor_cpu();
Ok(())
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
fn monitor_cpu() {
let mut sys = System::new_all();
let pid = Pid::from_u32(std::process::id());
thread::spawn(move || {
loop {
// 前回計測からの差分を見るため、最低でも数百ミリ秒の間隔が必要
sys.refresh_all();
if let Some(process) = sys.process(pid) {
// 使用率はコア数の合計 % (例: 2コアでフルなら 200%)
println!("CPU Usage: {:.2}%", process.cpu_usage());
}
thread::sleep(Duration::from_secs(2));
}
});
}
3. 注意点 (WebView のプロセス)
Tauri アプリは「Rust のメインプロセス」と「WebView のレンダラープロセス (msedgewebview2.exe 等)」に分かれています。
上記コードで取得できるのは Rust プロセスの負荷のみです。
WebView 側の CPU 使用率は OS のタスクマネージャーで子プロセスを確認するか、Chrome DevTools の Performance モニターを使用してください。