Algoritmo de tempo: clock () vs time () em C ++

Para cronometrar um algoritmo (aproximadamente em ms), qual destas duas abordagens é melhor:

clock_t start = clock();
algorithm();
clock_t end = clock();
double time = (double) (end-start) / CLOCKS_PER_SEC * 1000.0;

Ou,

time_t start = time(0);
algorithm();
time_t end = time(0);
double time = difftime(end, start) * 1000.0;

Além disso, de alguma discussão no canal C ++ no Freenode, eu sei que o clock tem uma resolução muito ruim, então o tempo será zero para um algoritmo (relativamente) rápido. Mas, qual tem melhor tempo de resolução () ou clock ()? ou é o mesmo?

questionAnswers(5)

yourAnswerToTheQuestion