All Projects → terror → vim-profiler

terror / vim-profiler

Licence: CC0-1.0 license
A vim plugin profiler and data plotter

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to vim-profiler

app profiler
Collect performance profiles for your Rails application.
Stars: ✭ 133 (+329.03%)
Mutual labels:  profiling
pint
A single-file command-line package manager for Windows.
Stars: ✭ 35 (+12.9%)
Mutual labels:  command-line-tool
geeup
Simple CLI for Google Earth Engine Uploads
Stars: ✭ 67 (+116.13%)
Mutual labels:  command-line-tool
imgui-flame-graph
A Dear ImGui Widget for displaying Flame Graphs.
Stars: ✭ 93 (+200%)
Mutual labels:  profiling
crawler click tutorial
click tutorial ( crawler ) use python
Stars: ✭ 15 (-51.61%)
Mutual labels:  command-line-tool
libgen-downloader
A simple tool to search and download ebooks from libgen via terminal user interface.
Stars: ✭ 98 (+216.13%)
Mutual labels:  command-line-tool
rails-mini-profiler
Performance profiling for Rails, made simple 🦔
Stars: ✭ 380 (+1125.81%)
Mutual labels:  profiling
reviewio
code review stats for
Stars: ✭ 22 (-29.03%)
Mutual labels:  command-line-tool
glacier
❄️ Building Python CLI using docstrings and typehints 🐍
Stars: ✭ 84 (+170.97%)
Mutual labels:  command-line-tool
quake-cli-tools
Command line tools for creating Quake content.
Stars: ✭ 41 (+32.26%)
Mutual labels:  command-line-tool
llvm-epp
Efficient Path Profiling using LLVM
Stars: ✭ 16 (-48.39%)
Mutual labels:  profiling
note-keeper
📓 A tiny bash tool for taking and organizing notes.
Stars: ✭ 58 (+87.1%)
Mutual labels:  command-line-tool
hydra
A command-line utility for generating language-specific project structure.
Stars: ✭ 18 (-41.94%)
Mutual labels:  command-line-tool
com.pixelwizards.utilities
Some Unity utilities (UV tools, resource checker etc) packaged for Unity's Package Manager
Stars: ✭ 61 (+96.77%)
Mutual labels:  profiling
node-banner
Easily integrate ASCII flavored banners to your CLI tool
Stars: ✭ 18 (-41.94%)
Mutual labels:  command-line-tool
gl-bench
⏱ WebGL performance monitor with CPU/GPU load.
Stars: ✭ 146 (+370.97%)
Mutual labels:  profiling
fix
Allows you to use OpenAI Codex to fix errors in the command line.
Stars: ✭ 72 (+132.26%)
Mutual labels:  command-line-tool
cybr-cli
A "Swiss Army Knife" command-line interface (CLI) for easy human and non-human interaction with @cyberark suite of products.
Stars: ✭ 45 (+45.16%)
Mutual labels:  command-line-tool
cati
Cati Unix Package Manager
Stars: ✭ 19 (-38.71%)
Mutual labels:  command-line-tool
nuxt-modules-cli
Browse Nuxt.js modules from the terminal
Stars: ✭ 25 (-19.35%)
Mutual labels:  command-line-tool

vim-profiler 🕒

Build crates.io

vim-profiler is a wrapper around the (n)vim --startuptime command, written in Rust. The binary is called vp and has only been tested on a Unix based system.

Demo

Here is a quick demo showcasing the main functionality of the program.

asciicast

Installation

You can install vim-profiler with the rust package manager Cargo:

$ cargo install vim-profiler

Usage

vim-profiler 0.0.4
A vim profiling tool.

USAGE:
    vp [FLAGS] [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -r, --reverse    Display the plugin times in reverse order (fastest first)
    -s, --sys        Show system plugins in the output
    -V, --version    Prints version information
    -v, --verbose    Add informative messages during program execution

OPTIONS:
    -c, --command   <command>      The command to run, e.g vim or neovim [default: vim]
    -n, --count     <count>        The number of plugins to list in the output
    -e, --export    <path>         Export the results to a CSV file
    -f, --file      <file>         A file to open
    -i, --iter      <iter>         The number of iterations
    -p, --plot      <path>         Plot the data and save it to a SVG file
    -x, --precision <precision>    Precision in the output

Exporting results

This utility allows for exporting results to either in a .svg file in the form of a plot or in a .csv file, where extra statistics are written.

Plot

The plot visualizes the start times of each plugin in your plugin directory. If you invoke vp with the --plot option, you will receive a plot in the form of an SVG file in the specified path that looks something like:

CSV

The CSV file contains various other useful statistics such as:

  • The average start time across all iterations
  • The median start time across all iterations
  • The standard deviation from the mean

If you invoke vp with the --export option you will receive a CSV file with the additional statistics called in the specified path that looks something like:

Plugin Max Min Median Average Deviation
vim-airline 11.59700 9.37200 11.05550 10.83430 0.64257
coc.nvim 9.26900 6.92700 8.26750 8.03870 0.74723
vimwiki 7.74400 5.25200 6.83400 6.53550 0.81209
vim-polyglot 7.01600 3.62900 4.22350 4.70690 1.09417
tabular 4.18500 2.53700 3.21100 3.19110 0.50241
vim-gitgutter 3.35000 2.10800 2.63900 2.70540 0.45181
emmet-vim 3.36700 2.16800 2.30200 2.45460 0.34839
ale 3.21800 1.54900 1.85950 2.04930 0.52316
vim-crypto 2.99100 1.61400 1.81100 2.03940 0.43480
fzf.vim 1.83000 0.94600 1.13900 1.20210 0.26501

Prior Art

The API is heavily inspired by the Python script that goes by the same name vim-profiler.

A few other notable vim profiling tools include:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].