misskey icon indicating copy to clipboard operation
misskey copied to clipboard

システムメトリクスのパフォーマンス改善

Open chocolate-pie opened this issue 10 months ago • 2 comments

Related to https://github.com/misskey-dev/misskey/issues/11065

Summary

現在システム情報の取得の際にはsysteminformationを使用しておりコマンドを逐一実行しているため数十ミリ秒〜百十数ミリ秒程度かかっているが、これをオペレーティングシステムが提供している低レベルAPI(Win32 APIなど)やNode.jsのビルトインモジュールを使用するようにして数百マイクロ秒に収まるようにしたい。(イベントループを長くブロックしている問題はNode.jsが使用しているLibuvのワーカープールにタスクをディスパッチすることで解決する)

Benchmark

Name Before (avg) After (avg) Speed
macOS (Disk I/O) 13'592 µs/iter 115 µs/iter 118.01x
macOS (Network) 72'932 µs/iter 29'782 ns/iter 2448.84x
macOS (Memory) 8'125 µs/iter 2'171 ns/iter 3742.05x
macOS (Disk space) 31'515 µs/iter 7'332 ns/iter 4298.13x
FreeBSD (Network) 22'907 µs/iter 861 ns/iter 26620.24x
FreeBSD (Memory) 3'764 µs/iter 2'586 ns/iter 1455.94x
FreeBSD (Disk space) 8'090 µs/iter 32'522 ns/iter 248.75x
Linux (Disk I/O) 4'715 µs/iter 241 µs/iter 19.55x
Linux (Network) 25'657 µs/iter 9'836 ns/iter 2608.46x
Linux (Disk space) 3'228 µs/iter 47'656 ns/iter 67.74x
Windows (Network) N/A N/A 15302.16x
Windows (Disk space) N/A N/A 9092.54x

chocolate-pie avatar Mar 31 '24 02:03 chocolate-pie