Profiling: add example for :prof during startup

This commit is contained in:
Marco Hinz 2019-10-07 19:56:02 +02:00
parent 058a090065
commit b64abe3e6a
No known key found for this signature in database
GPG Key ID: 1C980A1B657B4A4F

View File

@ -2392,13 +2392,11 @@ profile.
If you want to profile _everything_, do this: If you want to profile _everything_, do this:
``` :profile start /tmp/profile.log
:profile start /tmp/profile.log :profile file *
:profile file * :profile func *
:profile func * <do something in Vim>
<do something in Vim> :qa
<quit Vim>
```
Vim keeps the profiling information in memory and only writes it out to the Vim keeps the profiling information in memory and only writes it out to the
logfile on exit. (Neovim has fixed this using `:profile dump`). logfile on exit. (Neovim has fixed this using `:profile dump`).
@ -2406,11 +2404,15 @@ logfile on exit. (Neovim has fixed this using `:profile dump`).
Have a look at `/tmp/profile.log`. All code that was executed during profiling Have a look at `/tmp/profile.log`. All code that was executed during profiling
will be shown. Every line, how often it was executed and how much time it took. will be shown. Every line, how often it was executed and how much time it took.
Most of the time that will be plugin code the user isn't familiar with, but if Jump to the bottom of the log. Here are two different sections `FUNCTIONS SORTED
you're investigating a certain issue, jump to the bottom of the log. Here are ON TOTAL TIME` and `FUNCTIONS SORTED ON SELF TIME` that are worth gold. At a
two different sections `FUNCTIONS SORTED ON TOTAL TIME` and `FUNCTIONS SORTED ON quick glance you can see which functions are taking the longest.
SELF TIME` that are worth gold. At a quick glance you can see, if a certain
function is taking too long. You can use `:profile` during startup as well:
$ vim --cmd 'prof start prof.log | prof file * | prof func *' test.c
:q
$ tail -50 prof.log
## Debugging Vim scripts ## Debugging Vim scripts