История изменений
Исправление x4DA, (текущая версия) :
Ты меряешь умножение целых, а не даблов.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double array[3000000];
int main(void)
{
double result=0;
srand(time(NULL));
for(long int j=0; j!=3000000 ;j++)
{
array[j] = (rand() % 1000000) / 1000000.0;
};
timespec time1, time2;
const int TRIES = 1000;
clock_t start = clock();
for (long int ntr; ntr < TRIES; ntr++) {
for(long int j = 0; j < 3000000; j++) {
result += ( array[j] * array[j] );
};
}
clock_t end = clock();
double secs = (double) (end - start) / CLOCKS_PER_SEC;
printf("result = %.2lf\navg time = %lf ms cpu time\n", result, secs / 1000 / TRIES);
return 0;
}
у меня (core2 duo) показывает что-то вроде 0.000007 ms cpu time
Кстати, если собрать без -O2 то ваще в нули выходит.
Исправление x4DA, :
Ты меряешь умножение целых, а не даблов.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double array[3000000];
int main(void)
{
double result=0;
srand(time(NULL));
for(long int j=0; j!=3000000 ;j++)
{
array[j] = (rand() % 1000000) / 1000000.0;//Ограничил двузначными
};
timespec time1, time2;
const int TRIES = 1000;
clock_t start = clock();
for (long int ntr; ntr < TRIES; ntr++) {
for(long int j = 0; j < 3000000; j++) {
result += ( array[j] * array[j] );
};
}
clock_t end = clock();
double secs = (double) (end - start) / CLOCKS_PER_SEC;
printf("result = %.2lf\navg time = %lf ms cpu time\n", result, secs / 1000 / TRIES);
return 0;
}
у меня (core2 duo) показывает что-то вроде 0.000007 ms cpu time
Кстати, если собрать без -O2 то ваще в нули выходит.
Исходная версия x4DA, :
Ты меряешь умножение целых, а не даблов.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double array[3000000];
int main(void)
{
double result=0;
srand(time(NULL));
for(long int j=0; j!=3000000 ;j++)
{
array[j] = (rand() % 1000000) / 1000000.0;//Ограничил двузначными
};
timespec time1, time2;
const int TRIES = 1000;
clock_t start = clock();
for (long int ntr; ntr < TRIES; ntr++) {
for(long int j = 0; j < 3000000; j++) {
result += ( array[j] * array[j] );
};
}
clock_t end = clock();
double secs = (double) (end - start) / CLOCKS_PER_SEC;
printf("result = %.2lf\navg time = %lf ms cpu time\n", result, secs / 1000 / TRIES);
return 0;
}
у меня (core2 duo) показывает что-то вроде 0.000007 ms cpu time
Кстати, если собрать без -O2 то ваще в нули выходит.