Znáte to, nechcete hned složitě debugovat, ale rádi byste věděli, jak dlouho něco ve vašem kódu trvá a chtěli byste, aby se to používalo co nejjednodušeji.
Pak možná třeba takto:
package main import ( "log" "time" ) // Timer func for measuring the duration of the function func Timer(name string) func() { st := time.Now() log.Println(name, "START") return func() { et := time.Now().Sub(st) log.Println(name, "DURATION", et) } } func doIt() { doItTimer := Timer("doIt()") defer doItTimer() time.Sleep(time.Duration(5 * time.Second)) } func main() { mainTimer := Timer("main()") defer mainTimer() doIt() }
Použití je z kódu jasné: měření odstartujete zavoláním funkce Timer
, kter8 vám vrátí funkci pro ukončení měření s výpisem informace o spotřebovaném čase,
Výsledek pak bude vypadat následovně:
řešení je postavené na closures, což bude asi povědomé každému kdo píše v NodeJS.
PS
V Insideru mi přestal fungovat plugin pro získávání screenshotů s náhlady na zdrojový kód a nenašel jsem žádnou náhradu…
A tak jsem si znovu nainstaloval Atom. A byl jsem opravdu příjmně překvapenej. S Go funguje bezchybně.
A na 1. dobrou fungoval i plugin atom-screenshot a tady je výsledek:
To nevypadá vůbec špatně, že?