clock () – время выполнения для функции c

Я пытаюсь измерить время выполнения блока кода в C. У меня есть что-то вроде этого в моем коде:

clock_t begin, end; double time_spent; begin = clock(); ATL_dsymv(122,n,alfa,A,n,X,1,beta,Y,1); end = clock(); time_spent = (double)(end - begin) / CLOCKS_PER_SEC; printf ("(%f seconds)",time_spent); 

Но он всегда возвращает: (0.000000 секунд). Я пробовал то же самое на более простых блоках кода, как и для, но он имеет тот же результат. Что я делаю неправильно? Большое спасибо.

    clock обычно имеют очень низкое разрешение, порядка 10 миллисекунд. Это, скорее всего, ваша проблема. Если вы находитесь в системе POSIX, используйте clock_gettime с часами CLOCK_PROCESS_CPUTIME_ID чтобы получить результат с высоким разрешением. Другие типы систем, вероятно, имеют системные способы достижения этого.