0

我正在尝试在异步环境(tokio)中加快 CPU 繁重的计算。我最初的解决方案是使用rayon::spawn并行迭代器来实际执行。带有伪代码的最小示例:

for data in vec![data1, data2, data3] {
    rayon::spawn(move || {
        iproduct!(...)
            .par_bridge()
            .for_each(|...| process(data))
    })
}

这一定是错误的,因为如上所述,所有任务都需要 2 小时才能运行,但如果我删除.par_bridge(),那么第一个任务只需要 20 分钟(正如预期的那样,因为第一组数据要小得多),而其余任务则需要 4 小时以上。

我希望这不是 XY 问题。我究竟做错了什么?

4

0 回答 0