Чтобы вплоть до секунд. Где-то писали, что это все решается с помощью библиотеки <ctime>
и временным типом time_t
, но не работает
int main()
{
time_t start= time(0);
char mas[80] = {'c', 'a', 's', 't', 'l', 'e', 'v', 'a', 'n', 'i','a' };
char *p;
p=mas;
cout << p << endl;
cout << (time(0)-start) << " минут" << endl;
}
Я пробовал в
(time(0)-start)
Умножать на 60 и 3600, но в итоге все равно выдает 0, но я не уверен, что программа компилится за 0 секунд? Или проблема в том, что я прошу вернуть в этом коде мне целочисленный тип? Тогда каково решение?
Время выполнения программы:
C++11 способ. Получаем два времени через chrono::high_resolution_clock::now()
, вычитаем их. Получаем временной интервал (chrono::duration
). Временной интервал хранит тип тика и число тиков. В качестве типа тика могут быть секунды
, миллисекунды
и другие. Далее через chrono::duration_cast
приводим этот временной интервал к временному интервалу с типом тика миллисекунды
. И с помощью метода count
получаем число миллисекунд.
#include <iostream>
#include <chrono>
using namespace std;
int main() {
auto start = chrono::high_resolution_clock::now();
// здесь код, например:
for (int i = 0; i < 1e8; ++i) {}
auto end = chrono::high_resolution_clock::now();
double seconds = chrono::duration_cast<chrono::milliseconds>(end - start).count() / 1000.0;
printf("Программа работала %.3f секунд\n", seconds);
return 0;
}
Через clock()
и CLOCKS_PER_SEC
:
#include <iostream>
using namespace std;
int main() {
// здесь код, например:
for (int i = 0; i < 1e8; ++i) {}
double seconds = clock() / (double) CLOCKS_PER_SEC;
printf("Программа работала %.3f секунд\n", seconds);
}
Время компиляции программы:
В linux при компиляции из командной строки можно воспользоваться утилитой time
:
% time g++ main.cpp
g++ main.cpp 0,42s user 0,05s system 99% cpu 0,470 total
Либо можно компилировать с аргументом -ftime-report
, это выдаст статистику времени компилирования, общее время будет в последней строчке
g++ -ftime-report main.cpp
Для измерения времени компиляции есть специальная библиотека для cmake: metabench. Позволяет измерить время компиляции отдельного фрагмента файла. Принцип действия прост: сначала компилируется файл без этого фрагмента, затем - с ним (с помощью макросов). Разница во времени - время компиляции этого фрагмента. Естественно, тестируемый фрагмент должен быть независимым.
Результаты выводятся в разных вариантах, в том числе в виде html с графиками.
Подробностей я уже не помню, в проекте есть примеры. Под Windows точно работает с mingw64, с другими не пробовал.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ПриветствуюПрокрутка к якорю на jQuery - очень популярная тема и у меня как раз вопрос по этому
Есть такая задача: с сервера получить файл базы данных(в форматеdb) и перезаписать старый файл на новый