(BLOCK (PARA (TEXT "For debugging purposes, you can enable runtime profiling by setting the startup configuration ") (LINK-ZETTEL () "00001004010000#runtime-profiling" (LITERAL-INPUT () "runtime-profiling")) (TEXT ".") (SOFT) (TEXT "Typically, a Zettelstore developer will do this.") (SOFT) (TEXT "In certain cases, a Zettelstore developer will ask you to enable runtime profiling, because you encountered a hard error.")) (PARA (TEXT "Runtime profiling will generate some data that can be retrieved through the builtin web server.") (SOFT) (TEXT "The following URL paths are valid:")) (TABLE ((CELL (TEXT "Path")) (CELL (TEXT "Description"))) ((CELL (LITERAL-INPUT () "/rtp/")) (CELL (TEXT "Show an index page, where you can navigate to detailed information"))) ((CELL (LITERAL-INPUT () "/rtp/allocs")) (CELL (TEXT "Show a sampling of all past memory allocations"))) ((CELL (LITERAL-INPUT () "/rtp/block")) (CELL (TEXT "Show stack traces that led to internal blocking"))) ((CELL (LITERAL-INPUT () "/rtp/cmdline")) (CELL (TEXT "Show the running Zettelstore command line, with arguments separated by NUL bytes"))) ((CELL (LITERAL-INPUT () "/rtp/goroutine")) (CELL (TEXT "Show stack traces of all current internal activities"))) ((CELL (LITERAL-INPUT () "/rtp/heap")) (CELL (TEXT "Show a sampling of memory allocations of live objects"))) ((CELL (LITERAL-INPUT () "/rtp/mutex")) (CELL (TEXT "Show stack traces of holders of contended mutexes"))) ((CELL (LITERAL-INPUT () "/rtp/profile")) (CELL (TEXT "Execute a CPU profile"))) ((CELL (LITERAL-INPUT () "/rtp/symbol")) (CELL (TEXT "Shows function names for given program counter value"))) ((CELL (LITERAL-INPUT () "/rtp/trace")) (CELL (TEXT "Show trace of execution of the current program"))) ((CELL (LITERAL-INPUT () "/rtp/threadcreate")) (CELL (TEXT "Show stack traces that led to the creation of new OS threads")))) (PARA (TEXT "See documentation for Go standard package ") (LINK-EXTERNAL () "https://pkg.go.dev/net/http/pprof" (LITERAL-INPUT () "net/http/pprof")) (TEXT ".")))