Se si prevede di eseguire un sacco di misurazioni, l'approccio migliore è quello di creare un modello di supporto riutilizzabile, astraendo il codice tempistica:
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
Questo stamperà
CPU Time [my benchmark] 0.305s
Se avete bisogno di dati più completi sulle prestazioni di tutto il codice incluso nel vostro progetto, Nim offre una modalità di compilazione speciale, che funge da codice compilato con sonde di profilazione. È possibile trovare maggiori informazioni qui:
http://nim-lang.org/docs/estp.html
Infine, dal momento che Nim genera codice C con i nomi delle funzioni C che corrispondono direttamente alle loro controparti Nim, è possibile utilizzare qualsiasi profiler C con i programmi di Nim.
Ey, non conoscevo questo profilo. Nim è pieno di segreti. – Arrrrrrr