文件名称:sleeping_vs_spinning:衡量与旋转相比睡眠成本的基准
文件大小:257KB
文件格式:ZIP
更新时间:2024-05-01 16:47:50
Rust
睡觉与旋转 旋转或几乎总是被描述为一件坏事。 为什么要浪费整个CPU内核而实际上什么也不做呢? 为什么不让操作系统让线程进入睡眠状态并在准备好工作时将其唤醒? 不幸的是,“唤醒”线程需要一些时间。 此外,CPU在不忙时会自动降低其时钟速度,并且需要一些时间才能再次“对其进行预热”。 在此存储库中,我要衡量睡眠成本。 我将通过比较3种常见的“阻塞/睡眠”操作与它们的繁忙等待时间的等待时间来做到这一点: std::sync::mpsc::channel std::net::TcpStream std::net::UdpSocket –我在这里不讨论,但是代码在src/bin/std/udp.rs 为了比较结果,我使用了src/lib.rs定义的简单Benchmark结构。 每个基准测试都进行了99次迭代,然后打印出平均,中值,最小和最大延迟的摘要。 渠道基准 对于mpsc通道,我正在
【文件预览】:
sleeping_vs_spinning-master
----.gitignore(8B)
----src()
--------bin()
--------lib.rs(955B)
----Cargo.lock(10KB)
----Cargo.toml(210B)
----README.md(10KB)
----tokio.png(136KB)
----std.png(134KB)