【发布时间】:2017-11-18 15:37:22
【问题描述】:
我使用的是 Raspberry Pi 3,基本上踩过一条小绊线。
我有一个非常庞大而复杂的程序,它占用了大量内存并且 CPU 负载很大。我认为如果我在第一个进程仍在运行时启动相同的进程是正常的,它将占用相同数量的内存并且尤其是双倍的 CPU 负载。我发现它不会占用更多内存,也不会影响 CPU 负载。
为了查明这种行为是否来自我的程序,我编写了一个内存使用率极高的小型 c++ 程序,如下所示:
#include <iostream>
using namespace std;
int main()
{
for(int i = 0; i<100; i++) {
float a[100][100][100];
for (int i2 = 0; i2 < 99; ++i2) {
for (int i3 = 0; i3 < 99; ++i3){
for (int i4 = 0; i4 < 99; ++i4){
a[i2][i3][i4] = i2*i3*i4;
cout << a[i2][i3][i4] << endl;
}
}
}
}
return 0;
}
CPU 负载大约是最大级别的 30%,我在一个终端中启动了代码。奇怪的是,当我在另一个终端同时启动它时,它并没有影响 CPU 负载。我得出结论,这种行为不可能来自我的程序。
现在我想知道:
是否有一个“锁”可以确保某种类型的进程不会烧毁您的核心?
为什么两个相同的进程不会使 CPU 负载加倍?
【问题讨论】:
标签: process