为什么MUSL会让我的铁锈代码变得这么慢?

2020-05-05 22:36:12

我最近一直在运行我的Ballista项目的一些基准。您可以在此处查看当前的结果。在这项基准测试工作中,我发现Rust基准测试慢得离谱。经过调试,原来这是由于使用了MUSL,我很想了解一下是怎么回事。

基准测试打包在Docker(Dockerfile)中,我使用docker run--cpu=12命令在24核台式机上运行它们来分配CPU使用率,我想知道这个问题是否与Docker中MUSL的多线程使用有关。

如果Dockerfile包含以下内容,则基准测试大约需要5秒。系统监视器显示一些线程在短时间内使用100%的CPU。

如果Dockerfile包含以下内容,则基准测试花费的时间大约是原来的30倍。系统监视器显示许多线程在较长时间内使用20%到40%的CPU。