Jeśli planujesz wykonać wiele pomiarów, najlepszym rozwiązaniem jest stworzenie wielokrotnego użytku szablon pomocniczy, abstrahując dala kod czasowy:
import times, os, strutils
template benchmark(benchmarkName: string, code: stmt) =
let t0 = epochTime()
code
let elapsed = epochTime() - t0
let elapsedStr = elapsed.formatFloat(format = ffDecimal, precision = 3)
echo "CPU Time [", benchmarkName, "] ", elapsedStr, "s"
benchmark "my benchmark":
sleep 300
To będzie wydrukować
CPU Time [my benchmark] 0.305s
Jeśli potrzebujesz bardziej obszernych danych na temat wydajności całego kodu zawartego w projekcie, Nim oferuje specjalny tryb kompilacji, który instrumentuje skompilowany kod z sondami profilowania. Można znaleźć więcej na ten temat tutaj:
http://nim-lang.org/docs/estp.html
Wreszcie, ponieważ Nim generuje kod C z nazw funkcji C, które bezpośrednio odpowiadają ich odpowiedniki NIM, można użyć dowolnego z programów C profilera NIM.
Oczy, nie znałem tego profilu. Nim jest pełen sekretów. – Arrrrrrr