在 VirtualBox 中构建 Linux 系统时使用 -j2 参数有什么好处吗?

Sea*_*abs 2 linux make virtualbox

我正在使用 BuildRoot 从 VirtualBox 中构建根文件系统映像。构建非常缓慢。

在虚拟机中运行“make -j2”有什么好处吗?虚拟机中的 /proc/cpuinfo 是:

smachin@smachin-ubuntu:~/neo-build/rfs$ cat /proc/cpuinfo
处理器:0
vendor_id : 正版英特尔
CPU系列:6
型号 : 58
型号名称:Intel(R) Core(TM) i7-3687U CPU @ 2.10GHz
步数:9
微码:0x19
CPU 兆赫:2594.218
缓存大小:6144 KB
物理 ID:0
兄弟姐妹:1
核心 ID:0
CPU核心:1
酸性:0
初始酸性:0
fpu:是的
fpu_exception : 是
cpuid 级别:5
wp:是的
标志: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl pni monitor ssse3 lahf_lm
博戈米普斯:5188.43
clflush 大小:64
缓存对齐:64
地址大小:36 位物理,48 位虚拟
能源管理:

小智 5

是的,可以有。如果系统受 I/O 限制且受 CPU 限制,-j2则会在其他进程执行磁盘 I/O 时使用更多 CPU。但是,增加从磁盘请求的进程数量可能会由于磁盘磁头移动的争用而使其变慢。

正如斯蒂芬基特所说,测试它。

time make clean all
time make -j 2 clean all
time make -j 3 clean all
Run Code Online (Sandbox Code Playgroud)

您在 VirtualBox 中。假设你拥有这台机器,你可以关闭虚拟机,增加 CPU 核心的数量,启动,运行你的构建,然后关闭以将其降回 1 个核心。

或者,您可以将其保留为 2 个内核。Linux 非常高效。仅仅因为您为 VM 提供了两个内核,并不会使它们对主机操作系统不可用。如果来宾操作系统不执行任何操作,则主机可以使用这些内核。