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

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

我正在使用 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
中央处理器兆赫:2594.218
缓存大小:6144 KB
物理 ID:0
兄弟姐妹:1
核心编号:0
CPU核心数:1
辣椒素 : 0
初始 apicid : 0
FPU:是的
fpu_异常:是的
CPUID级别:5
工作:是的
标志 : 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 监视器 ssse3 lahf_lm
波戈米普:5188.43
clflush 大小:64
缓存对齐:64
地址大小:36 位物理地址,48 位虚拟地址
能源管理:

答案1

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

正如斯蒂芬·基特所说,测试一下。

time make clean all
time make -j 2 clean all
time make -j 3 clean all

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

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

相关内容