Tôi đang cố gắng để thời gian một mã tôi đã có trong C + +. Tôi có một vòng lặp bên trong và bên ngoài mà tôi muốn thời gian riêng biệt, nhưng cùng một lúc. Đối với một số lý do khi tôi làm điều này một trong những trường hợp trả về 1.84467e + 13 và luôn luôn chính xác số này.Tại sao đồng hồ() quay lại 1.84467e + 13?
Tại sao điều này lại xảy ra?
Dưới đây là một ví dụ làm việc tối thiểu mà tái tạo hiệu ứng trên máy tính của tôi:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
long int i, j;
clock_t start, finish, tick, tock;
double a = 0.0;
double adding_time, runtime;
start = clock();
for(i=0; i<10; i++)
{
a=0.0;
tick =clock();
for(j=0; j<10000000; j++)
{
a+=1;
}
tock= clock();
adding_time = (double)(tick - tock)/CLOCKS_PER_SEC;
cout << "Computation time:" << adding_time << endl;
}
finish = clock();
runtime = (double)(finish - start)/CLOCKS_PER_SEC;
cout << "Total computation time:" << runtime << endl;
}
Kết quả không phải là giống hệt nhau! – user1436187
nếu bạn muốn có độ chính xác cao, không sử dụng 'clock()'. [C++ Cross-Platform High-Resolution Timer] (http://stackoverflow.com/q/1487695/995714), [C++ phép đo thời gian chính xác cao trong Windows] (http://stackoverflow.com/q/1825720/995714) , [Hẹn giờ có độ phân giải cao với C++ và Linux?] (Http://stackoverflow.com/q/538609/995714) –