========== Profile ========== .. versionadded:: 0.10.0 The ``profile`` macros make it easier to find bottlenecks. Macros ====== .. _profile/calls: .. _profile/cpu: profile/calls -------------- ``profile/calls`` allows you to create a call graph visualization. **Note:** You must have `Graphviz `_ installed for this to work. Usage: `(profile/calls (body))` Example: .. code-block:: hy (require [hy.contrib.profile [profile/calls]]) (profile/calls (print "hey there")) profile/cpu ------------ ``profile/cpu`` allows you to profile a bit of code. Usage: `(profile/cpu (body))` Example: .. code-block:: hy (require [hy.contrib.profile [profile/cpu]]) (profile/cpu (print "hey there")) .. code-block:: bash hey there 2 function calls in 0.000 seconds Random listing order was used ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 1 0.000 0.000 0.000 0.000 {print}