{"id":13471746,"url":"https://github.com/rhysd/vim-startuptime","last_synced_at":"2025-04-13T04:59:13.128Z","repository":{"id":34553736,"uuid":"135152283","full_name":"rhysd/vim-startuptime","owner":"rhysd","description":"A small Go program for better `vim --startuptime` alternative","archived":false,"fork":false,"pushed_at":"2024-11-14T02:38:50.000Z","size":90,"stargazers_count":245,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-13T04:59:08.032Z","etag":null,"topics":["neovim","profile","startuptime","vim"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhysd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-28T11:31:47.000Z","updated_at":"2025-04-08T13:39:12.000Z","dependencies_parsed_at":"2024-06-19T00:10:53.558Z","dependency_job_id":"e179b170-f357-41d0-9b0f-9ed557d18ca6","html_url":"https://github.com/rhysd/vim-startuptime","commit_stats":{"total_commits":83,"total_committers":3,"mean_commits":"27.666666666666668","dds":0.02409638554216864,"last_synced_commit":"e805bd8f255835a2940233a99eeb2601871aa9a1"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Fvim-startuptime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Fvim-startuptime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Fvim-startuptime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhysd%2Fvim-startuptime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhysd","download_url":"https://codeload.github.com/rhysd/vim-startuptime/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665758,"owners_count":21142123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","profile","startuptime","vim"],"created_at":"2024-07-31T16:00:48.938Z","updated_at":"2025-04-13T04:59:13.109Z","avatar_url":"https://github.com/rhysd.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"Better `vim --startuptime`\n==========================\n[![CI Badge][]][CI]\n[![Codecov Status][]][Codecov]\n\n`vim-startuptime` is a small Go program to measure startup time of Vim or Neovim. This program aims\nto be an alternative of `--startuptime` option of Vim, which measures the startup time metrics to\nallow vimmers to optimize Vim's startup.\n\nAfter warm-up, `vim-startuptime` runs `vim --startuptime` multiple times internally and collects the\nmetrics from the results (e.g. average time for loading each plugin's scripts). The summary calculated\nfrom the measurements is output to stdout.\n\nTested on Linux, Mac and Windows with both Vim and Neovim.\n\n\n\n## Installation\n\nDownload an executable from [a release page](https://github.com/rhysd/vim-startuptime/releases).\n\nIf you want to install the latest stable version, please run following command. Go toolchain is\nnecessary for running the command.\n\n```sh\ngo install github.com/rhysd/vim-startuptime@latest\n```\n\n\n\n## Requirements\n\n- `vim` 7.4.1444 or later (for `--not-a-term` startup option)\n- `nvim`\n\n\n\n## Usage\n\nJust run the command with no argument.\n\n```sh\nvim-startuptime\n```\n\nBy default, it tries to run `vim` and `:quit` immediately 10 times, collects the results and outputs\na summary of them to stdout.\n\n```\nExtra options: []\nMeasured: 10 times\n\nTotal Average: 189.954400 msec\nTotal Max:     198.062000 msec\nTotal Min:     183.966000 msec\n\n  AVERAGE        MAX       MIN\n-------------------------------\n98.532900 102.605000 94.275000: $HOME/.vimrc\n51.859600  56.937000 49.897000: opening buffers\n17.027900  18.810000 16.277000: /Users/rhysd/.vim/bundle/vim-color-spring-night/colors/spring-night.vim\n11.878900  13.153000 10.567000: /Users/rhysd/.vim/bundle/vim-smartinput/autoload/smartinput.vim\n 9.407600  11.710000  8.606000: /usr/local/Cellar/macvim/HEAD-0db36ff_1/MacVim.app/Contents/Resources/vim/runtime/filetype.vim\n\n...(snip)\n\n 0.009100   0.012000  0.007000: window checked\n 0.009000   0.012000  0.008000: inits 3\n 0.003000   0.005000  0.002000: clipboard setup\n 0.002600   0.004000  0.002000: editing files in windows\n```\n\nIf you want to run with Neovim, please specify `-vimpath` option as follows:\n\n```\n$ vim-startuptime -vimpath nvim\n```\n\nIf you want to give some options or arguments to underlying `vim` command executions, please specify\nthem after `--` argument in command line as follows:\n\n```\n$ vim-startuptime -- --cmd DoSomeCommand path/to/some/file\n```\n\nPlease see `-help` option to know the command options.\n\n\n\n## What's Next after running `vim-startuptime`?\n\nBy running `vim-startuptime`, now you know which script file takes time to run. What you should do\nnext is `:profile`.\n\n```sh\nvim --cmd 'profile start profile.log' --cmd 'profile! file /path/to/slow_script.vim' -c quit\n```\n\nProfiled results are dumped to `profile.log`. Please check it. In log file, `:set ft=vim` would help\nyou analyze the results.\nPlease see `:help profile` for more details.\n\n\n\n## (Maybe) TODO\n\n- Add more metrics like median\n- Temporarily isolate CPU for running Vim if possible\n\n\n\n## License\n\nDistributed under [the MIT License](./LICENSE).\n\n\n\n[CI Badge]: https://github.com/rhysd/vim-startuptime/actions/workflows/ci.yml/badge.svg\n[CI]: https://github.com/rhysd/vim-startuptime/actions/workflows/ci.yml\n[Codecov Status]: https://codecov.io/gh/rhysd/vim-startuptime/branch/master/graph/badge.svg\n[Codecov]: https://codecov.io/gh/rhysd/vim-startuptime\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhysd%2Fvim-startuptime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhysd%2Fvim-startuptime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhysd%2Fvim-startuptime/lists"}