我有一个用于加法的C语言示例程序。当我使用GCC编译并运行它时,它只使用了一个CPU核心。
是否有一种方法可以编译C程序,以便在Linux中可以使用所有CPU核心。
我以前是这样编译的:gcc -O3 malloc.c
代码:
#include <stdio.h>
#include <time.h>
#include <malloc.h>
int main() {
float *ptr;
unsigned long long i;
ptr = (float*) malloc(8000000000 * sizeof(float));
for(i=0; i<8000000000; i++) {
ptr[i] = i/10000;
}
clock_t tic = clock();
for(i=0; i<8000000000; i++) {
ptr[i] = (i/10000)+1.0;
}
clock_t toc = clock();
printf("Elapsed: %f seconds\n", (double)(toc - tic) / CLOCKS_PER_SEC);
return 0;
}
<malloc.h>
is non standard and perhaps deprecated. Use<stdlib.h>
- Basile Starynkevitchmake -j
在编译时很重要,而不是在运行时。 - Basile Starynkevitchmake
的观点。 - danglingpointer-O
开关只是用于指定您想要的优化级别。 - babon