Короткие выдержки из кода обычно не занимают достаточно много времени для запуска в целях профилирования. Обычная техника - повторять вызов много-много раз (миллионы), а затем делить полученную дельту времени на счетчик итераций. Псевдо-код:
count = 10,000,000
start = readCurrentTime()
loop count times:
myCode()
end = readCurrentTime()
elapsedTotal = end - start
elapsedForOneIteration = elapsedTotal / count
Если вам нужна точность, вы можете не учитывать накладные расходы на цикл. Например:
loop count times:
myCode()
myCode()
and measure elapsed1 (2 x count iterations + loop overhead)
loop count times:
myCode()
and measure elapsed2 (count iterations + loop overhead)
actualElapsed = elapsed1 - elapsed2
(count iterations -- because rest of terms cancel out)