Я пытаюсь получить прошедшее время моей программы. На самом деле я думал, что должен использовать yclock()
из time.h
. Но он остается нулевым на всех этапах программы, хотя я добавляю 10 ^ 5 чисел (должно быть затрачено некоторое время процессора). Я уже искал эту проблему, и похоже, что люди, работающие под Linux, сталкиваются только с этой проблемой. Я использую Ubuntu 12.04LTS.
Я собираюсь сравнить инструкции AVX и SSE, поэтому использование time_t
на самом деле не вариант. Любые подсказки?
Вот код:
//Dimension of Arrays
unsigned int N = 100000;
//Fill two arrays with random numbers
unsigned int a[N];
clock_t start_of_programm = clock();
for(int i=0;i<N;i++){
a[i] = i;
}
clock_t after_init_of_a = clock();
unsigned int b[N];
for(int i=0;i<N;i++){
b[i] = i;
}
clock_t after_init_of_b = clock();
//Add the two arrays with Standard
unsigned int out[N];
for(int i = 0; i < N; ++i)
out[i] = a[i] + b[i];
clock_t after_add = clock();
cout << "start_of_programm " << start_of_programm << endl; // prints
cout << "after_init_of_a " << after_init_of_a << endl; // prints
cout << "after_init_of_b " << after_init_of_b << endl; // prints
cout << "after_add " << after_add << endl; // prints
cout << endl << "CLOCKS_PER_SEC " << CLOCKS_PER_SEC << endl;
И вывод консоли. Я также использовал printf()
с %d
без разницы.
start_of_programm 0
after_init_of_a 0
after_init_of_b 0
after_add 0
CLOCKS_PER_SEC 1000000
clock()
возвращает количество процессорного времени, использованного процессом. - person trojanfoe   schedule 09.09.20130
кN
? - person trojanfoe   schedule 09.09.2013std::chrono
вместо функций времени C. - person Appleshell   schedule 09.09.2013_mm_malloc(sizeof(int)*N, 32)
. - person Z boson   schedule 09.09.2013