blob: 4f113b89f9489a21f7999dd39c113d9699fd4073 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# Profiler Plugin
Profiling is mainly the runtime analysis of a program performance by counting
the call count and duration for the various routines executed thru the lifecycle
of the application. For more information view the [wikipedia] article.
This plugin adds the ability to profile function calls while running Lite XL
to investigate performance related issues and more easily pinpoint what could
be causing the slowdowns. It integrates the [lua-profiler] which provides
the functionality we need.
## Usage
Open Lite XL and access the command palette by pressing `ctrl+shift+p` and
search for profiler. The command `Profiler: Toggle` command will be shown to
lets you start or stop the profiler. You should start the profiler before
triggering the events that are causing any performance issues.
![command](https://user-images.githubusercontent.com/1702572/202113672-6ba593d9-03be-4462-9e82-e3339cf2722f.png)
> **Note:** Starting the profiler will make the editor more slower since it is
> now accumulating metrics about every function call. Do not worry, this is
> expected and shouldn't affect the end result, just be patience because
> everything will be slower.
There may also be some situations when you would like to enable the profiler
early on the startup process so we provided a config option for that.
![settings](https://user-images.githubusercontent.com/1702572/202113713-7e932b4f-3283-42e6-af92-a1aa9ad09bde.png)
You can also change the default `profiler.log` path. Notice that since the
profiler is not part of the core but a plugin it will only start measuring
metrics once the plugin is loaded. The `priority` tag of the profiler plugin
was set to `0` to make it one of the first plugins to start.
Once you have profiled enough you can execute the `Profiler: Toggle` command
to stop the profiler and it will automatically open a document view with the
recollected metrics as shown below:
![metrics](https://user-images.githubusercontent.com/1702572/202113736-ef8d550c-130e-4372-b66c-694ee5f4c5c0.png)
You can send Lite XL developers the output of `profiler.log` so it can be
more easily diagnosed what could be causing any issue.
[wikipedia]: https://en.wikipedia.org/wiki/Profiling_(computer_programming)
[lua-profiler]: https://github.com/charlesmallah/lua-profiler
|