rust-trace-event-profilerでtokio::runtime
最近のRustではThread制御までライブラリに任せられるようなので、その機能を使って前回作ったTrace Eventを作るやつで挙動を可視化してみました。
let mut rt = tokio::runtime::Builder::new() .core_threads(6) .threaded_scheduler() .build() .unwrap(); rt.block_on(async move { let events = put_ten_block().await; save_file("flow.json", events); });
async fn put_ten_block(item: TimelineItem) -> Vec<TraceEvent>;
async関数を利用するだけでタスクを適切にスレッドに割り振ってくれています。素晴らしい。