# Console timing facilities in Tasks <span class="related-pages">#profiling</span> ## Using the console timing facility When you **edit your Tasks plugin settings to set 'debugSettings > recordTimings' to true**, Tasks will: 1. measure the elapsed time taken in sections of performance critical code, 1. write the elapsed time to the console, similar to `console.time()` and `console.timeEnd()`, 1. add markings to the Timing section of performance flame charts: see 'Performance and profiling' in [[Debugging and Performance tools]]. ## Timing new sections of code The timing facility is implemented in [PerformanceTracker.ts](https://github.com/obsidian-tasks-group/obsidian-tasks/blob/main/src/lib/PerformanceTracker.ts). How to use PerformanceTracker: ```typescript const tracker = new PerformanceTracker('some descriptive text'); tracker.start(); // ... some slow code tracker.finish(); ``` ## Example console output ```text Search: 4tNIzakiWp - Stress Test/limit 1.md: 131.60000002384186 milliseconds Render: 4tNIzakiWp - Stress Test/limit 1.md: 26.900000035762787 milliseconds Search: 63ata8hRM1 - Stress Test/limit 25.md: 89.20000004768372 milliseconds Render: 63ata8hRM1 - Stress Test/limit 25.md: 32.30000001192093 milliseconds Search: XxLS3Z3SHT - Stress Test/limit 50.md: 101.10000002384186 milliseconds Render: XxLS3Z3SHT - Stress Test/limit 50.md: 62.80000001192093 milliseconds Search: 7T4xmf87Ky - Stress Test/limit 100.md: 108.5 milliseconds Render: 7T4xmf87Ky - Stress Test/limit 100.md: 165.79999995231628 milliseconds Search: XngShdTbz3 - Stress Test/limit 150.md: 91.40000003576279 milliseconds Render: XngShdTbz3 - Stress Test/limit 150.md: 164 milliseconds Search: aCvrb1aufJ - Stress Test/limit 200.md: 91.10000002384186 milliseconds Render: aCvrb1aufJ - Stress Test/limit 200.md: 209.89999997615814 milliseconds ``` ## Example timing labels in profiling See [[Debugging and Performance tools#Label sections in performance flame charts]].