РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
543 of 815 menu

Функция clock

Функция clock возвращает количество тактов процессора, прошедших с начала выполнения программы. Возвращаемое значение имеет тип clock_t и измеряется в тактах. Чтобы перевести такты в секунды, нужно разделить результат на константу CLOCKS_PER_SEC. Функция не принимает параметров.

Функция объявлена в заголовочном файле <ctime>. Обычно используется для измерения времени выполнения участка кода: засекают значение clock до и после выполнения блока, а затем вычисляют разницу.

Синтаксис

clock_t clock();

Пример

Давайте измерим время выполнения простого цикла и выведем результат в секундах:

#include <iostream> #include <ctime> using namespace std; int main() { clock_t start = clock(); long long sum = 0; for (int i = 0; i < 100000000; i++) { sum += i; } clock_t end = clock(); double seconds = double(end - start) / CLOCKS_PER_SEC; cout << "Sum: " << sum << endl; cout << "Time: " << seconds << " seconds" << endl; return 0; }

Результат выполнения кода:

"Sum: 4999999950000000" "Time: 0.234 seconds"

Пример

Давайте сравним время выполнения двух разных циклов и выведем, какой из них быстрее:

#include <iostream> #include <ctime> using namespace std; int main() { clock_t start1 = clock(); long long sum1 = 0; for (int i = 0; i < 50000000; i++) { sum1 += i * 2; } clock_t end1 = clock(); clock_t start2 = clock(); long long sum2 = 0; for (int i = 0; i < 50000000; i++) { sum2 += i; } clock_t end2 = clock(); double t1 = double(end1 - start1) / CLOCKS_PER_SEC; double t2 = double(end2 - start2) / CLOCKS_PER_SEC; cout << "First loop: " << t1 << " seconds" << endl; cout << "Second loop: " << t2 << " seconds" << endl; return 0; }

Результат выполнения кода:

"First loop: 0.187 seconds" "Second loop: 0.094 seconds"

Пример

Давайте выведем количество тактов процессора, прошедших с начала программы:

#include <iostream> #include <ctime> using namespace std; int main() { clock_t ticks = clock(); cout << "Ticks since start: " << ticks << endl; cout << "CLOCKS_PER_SEC: " << CLOCKS_PER_SEC << endl; return 0; }

Результат выполнения кода:

"Ticks since start: 1250" "CLOCKS_PER_SEC: 1000000"

Смотрите также

  • функция difftime,
    которая вычисляет разницу между двумя моментами времени
  • функция time,
    которая возвращает текущее календарное время
  • функция localtime,
    которая преобразует время в локальное представление
  • функция sleep_for,
    которая приостанавливает выполнение потока на заданное время
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить