【发布时间】:2021-09-09 21:05:08
【问题描述】:
我正在编写一个使用大量线程的 Rust 应用程序。我注意到 CPU 使用率很高,所以我做了top,然后点击H 来查看线程:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
247759 root 20 0 3491496 104400 64676 R 32.2 1.0 0:02.98 my_app
247785 root 20 0 3491496 104400 64676 S 22.9 1.0 0:01.89 llvmpipe-0
247786 root 20 0 3491496 104400 64676 S 21.9 1.0 0:01.71 llvmpipe-1
247792 root 20 0 3491496 104400 64676 S 20.9 1.0 0:01.83 llvmpipe-7
247789 root 20 0 3491496 104400 64676 S 20.3 1.0 0:01.60 llvmpipe-4
247790 root 20 0 3491496 104400 64676 S 20.3 1.0 0:01.64 llvmpipe-5
247787 root 20 0 3491496 104400 64676 S 19.9 1.0 0:01.70 llvmpipe-2
247788 root 20 0 3491496 104400 64676 S 19.9 1.0 0:01.61 llvmpipe-3
这些 llvmpipe-n 线程是什么?为什么my_app 会启动它们?他们肯定是来自my_app 吗?
【问题讨论】:
-
请注意,这个问题可能更适合superuser。
-
什么样的应用程序?你在使用什么库?快速谷歌搜索导致docs.mesa3d.org/drivers/llvmpipe.html
-
@HHK 我正在使用
glium,这是一个执行 OpenGL 渲染的 rust crate。另外,我在虚拟机中。你认为 llvm 管道是来自 glium 还是来自 VM?我不明白为什么要在虚拟机之外虚拟化顶点处理,所以我猜是虚拟机
标签: linux multithreading rust process llvm