https://gist.github.com/lsk569937453/b42a8cfce21bd20c5da8737db1f5a1b1
加了 anyhow = { version = "1.0.xx"}之后,gateway 的 TPS 从 8w 降到 4w(4 核 8G 的 docker 容器)。
anyhow = { version = "1.0.xx", default-features = false }
目前不确定是 anyhow 的问题还是 hyper v1 的问题。我用同样的代码在 hyper v0.14.xx 实现了一遍,没有发现问题。所以倾向是 hyper v1 的问题。
1
PTLin 61 天前
虽然不知道你代码具体原因是什么,但是 anyhow 1.0.80 不同 feature backtrack 的速度确实不一样,不开启 std feature 的话用的是 anyhow 自己的实现,开启的话用的是标准库的实现,在 Windows 上好像是标准库的实现比较慢。
```rust use anyhow::anyhow; use std::time::Instant; fn main() { for _ in 0..20 { let now = Instant::now(); for _ in 0..10000 { let _ = anyhow!("asd"); } println!("{:?}", now.elapsed()); } } ``` |
2
lsk569937453 OP 应该和 anyhow 的版本没什么关系,我换成 anyhow = { version = "1.0.70"}还是有同样的问题。
|
3
PTLin 61 天前
|
4
lsk569937453 OP 保险起见,不用 anyhow 这个 crate 了,代码改动还小点。
|
5
PTLin 59 天前
@lsk569937453 我比较好奇题主是什么平台运行的代码
|