Como medir o tempo que um código leva para executar?

Suponha que eu queira medir o tempo que um determinado pedaço de código leva. Para isso, eu normalmente faria algo assim

clock_t startTime = clock();
//do stuff
//do stuff
//do stuff
//do stuff
float secsElapsed = (float)(clock() - startTime)/CLOCKS_PER_SEC;

E se o programa for multithread e as alternâncias de contexto ocorrerem na parte que eu quero medir? Como medir o tempo que meu código leva para executar, excluindo o tempo gasto em outros threads? Mesmo que existam ferramentas, eu gostaria muito de sabercom eles estão fazendo isso.

questionAnswers(4)

yourAnswerToTheQuestion