title: Zettelstore runtime profiling role: manual tags: #configuration #manual #zettelstore syntax: zmk backward: 00001004010000 box-number: 1 copyright: (c) 2020-present by Detlef Stern created: 20240926144556 forward: 00001004010000 lang: en license: EUPL-1.2-or-later modified: 20240926144951 published: 20240926144951 visibility: public For debugging purposes, you can enable runtime profiling by setting the startup configuration [[''runtime-profiling''|00001004010000#runtime-profiling]]. Typically, a Zettelstore developer will do this. In certain cases, a Zettelstore developer will ask you to enable runtime profiling, because you encountered a hard error. Runtime profiling will generate some data that can be retrieved through the builtin web server. The following URL paths are valid: |=Path|=Description |''/rtp/''|Show an index page, where you can navigate to detailed information |''/rtp/allocs''|Show a sampling of all past memory allocations |''/rtp/block''|Show stack traces that led to internal blocking |''/rtp/cmdline''|Show the running Zettelstore command line, with arguments separated by NUL bytes |''/rtp/goroutine''|Show stack traces of all current internal activities |''/rtp/heap''|Show a sampling of memory allocations of live objects |''/rtp/mutex''|Show stack traces of holders of contended mutexes |''/rtp/profile''|Execute a CPU profile |''/rtp/symbol''|Shows function names for given program counter value |''/rtp/trace''|Show trace of execution of the current program |''/rtp/threadcreate''|Show stack traces that led to the creation of new OS threads See documentation for Go standard package [[''net/http/pprof''|https://pkg.go.dev/net/http/pprof]].