Add a way to profile Vim bindings
This commit is contained in:
parent
d569c0b3dd
commit
60fb311463
|
@ -0,0 +1,21 @@
|
|||
****************************************
|
||||
Tips and tricks for powerline developers
|
||||
****************************************
|
||||
|
||||
Profiling powerline in Vim
|
||||
==========================
|
||||
|
||||
Given that current directory is the root of the powerline repository the
|
||||
following command may be used:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
vim --cmd 'let g:powerline_pyeval="powerline#debug#profile_pyeval"' \
|
||||
--cmd 'set rtp=powerline/bindings/vim' \
|
||||
-c 'runtime! plugin/powerline.vim' \
|
||||
{other arguments if needed}
|
||||
|
||||
After some time run ``:WriteProfiling {filename}`` Vim command. Currently this
|
||||
only works with recent Vim and python-2*. It should be easy to modify
|
||||
:file:`powerline/bindings/vim/autoload/powerline/debug.vim` to suit other
|
||||
needs.
|
|
@ -0,0 +1,20 @@
|
|||
python import cProfile
|
||||
python powerline_pr = cProfile.Profile()
|
||||
|
||||
function powerline#debug#profile_pyeval(s)
|
||||
python powerline_pr.enable()
|
||||
try
|
||||
let ret = pyeval(a:s)
|
||||
finally
|
||||
python powerline_pr.disable()
|
||||
endtry
|
||||
return ret
|
||||
endfunction
|
||||
|
||||
function powerline#debug#write_profile(fname)
|
||||
python import vim
|
||||
python powerline_pr.dump_stats(vim.eval('a:fname'))
|
||||
python powerline_pr = cProfile.Profile()
|
||||
endfunction
|
||||
|
||||
command -nargs=1 -complete=file WriteProfiling :call powerline#debug#write_profile(<q-args>)
|
Loading…
Reference in New Issue