{"issue":{"milestone":null,"user":{"id":341473,"login":"zhaocai","url":"https://api.github.com/users/zhaocai","avatar_url":"https://secure.gravatar.com/avatar/e1c41638f81b6066591ae7dec13b1fd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"e1c41638f81b6066591ae7dec13b1fd5"},"created_at":"2011-12-18T03:29:59Z","title":"Vundle is much slower than NeoBundle","updated_at":"2011-12-18T03:29:59Z","labels":[],"state":"open","id":2591658,"html_url":"https://github.com/gmarik/vundle/issues/124","closed_at":null,"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"body":"Hi, guys\r\n\r\nI just tried [NeoBundle][] and surprisingly found that neobundle loaded much faster than [vundle][]. As a matter of fact, neobundle was originally based on [vundle][]. The profiling process and command are detailed as below for you reference. \r\n\r\nIf you are interested, please try it yourself and share the results...\r\n\r\nProfiling Command\r\n------------\r\n```sh\r\nvim --cmd 'profile start profile.log' \\\r\n    --cmd 'profile func *' \\\r\n    --cmd 'profile file *' \\\r\n    -c 'profdel func *' \\\r\n    -c 'profdel file *' \\\r\n    -c 'qa!'\r\n```\r\n\r\n\r\n\r\nvimrc diff\r\n----------\r\nsame vimrc containing 50+ bundles. The only difference are a few lines to load [vundle][] or neobundle. \r\n\r\n```vim \r\n    if has('vim_starting')\r\n\tset rtp+=~/.vim/bundle/vundle/\r\n\tcall vundle#rc()\r\n\tlet g:vundle_win_width = 36\r\n    endif\r\n\r\n    Bundle 'gmarik/vundle'\r\n```\r\n\r\n\r\n```vim \r\n    if has('vim_starting')\r\n\tset runtimepath+=~/.vim/bundle/neobundle.vim/\r\n\tcall neobundle#rc(expand('~/.vim/bundle/'))\r\n\tcommand! -nargs=+ Bundle\r\n\t            \\ call neobundle#config#bundle(<args>)\r\n    endif\r\n\r\n    NeoBundle 'Shougo/neobundle.vim'\r\n```\r\n\r\ntesting results \r\n---------------\r\nPlease check the **top lines** for each profiling results. \r\n\r\n+ vundle\r\n\r\n```\r\n\tFUNCTIONS SORTED ON TOTAL TIME\r\n\tcount  total (s)   self (s)  function\r\n\t  103   0.942041   0.001915  vundle#config#bundle()\r\n\t  103   0.494629   0.029297  <SNR>4_rtp_add_a()\r\n\t  104   0.434962   0.028427  <SNR>4_rtp_rm_a()\r\n\t 5356   0.345058             <SNR>4_rtp_add()\r\n\t 5253   0.288478             <SNR>4_rtp_rm()\r\n\t10609   0.238331   0.071125  2()\r\n\t10609   0.167206   0.055477  1()\r\n\t10609   0.111729             <SNR>4_expand_path()\r\n\t    1   0.065721   0.000963  <SNR>103_browse_check()\r\n\t    2   0.054499   0.002833  vital#of()\r\n\t    1   0.042505   0.000064  <SNR>131_SetWatchExtension()\r\n\t    1   0.042441   0.000061  <SNR>131_CreateDict()\r\n\t    1   0.042380   0.011695  <SNR>131_ParseFileAssociationList()\r\n\t    1   0.041924   0.000028  vital#_c7f20e#new()\r\n\t    2   0.041896   0.000126  <SNR>191_import()\r\n\t    4   0.034772   0.024908  DoxygenReadTemplates()\r\n\t    3   0.032555   0.015258  <SNR>191__scripts()\r\n\t    3   0.029177   0.000403  <SNR>191__import()\r\n\t   13   0.028053             TagHighlight#LoadDataFile#LoadFile()\r\n\t    2   0.027475   0.002766  zlib#sys#ostype()\r\n\r\n\tFUNCTIONS SORTED ON SELF TIME\r\n\tcount  total (s)   self (s)  function\r\n\t 5356              0.345058  <SNR>4_rtp_add()\r\n\t 5253              0.288478  <SNR>4_rtp_rm()\r\n\t10609              0.111729  <SNR>4_expand_path()\r\n\t10609   0.238331   0.071125  2()\r\n\t10609   0.167206   0.055477  1()\r\n\t  103   0.494629   0.029297  <SNR>4_rtp_add_a()\r\n\t  104   0.434962   0.028427  <SNR>4_rtp_rm_a()\r\n\t   13              0.028053  TagHighlight#LoadDataFile#LoadFile()\r\n\t    4   0.034772   0.024908  DoxygenReadTemplates()\r\n\t    3   0.026625   0.022328  <SNR>191__build_module()\r\n\t   19   0.019326   0.018752  <SNR>126_createtimehandler()\r\n\t  577              0.015858  <SNR>191__unify_path()\r\n\t    3   0.032555   0.015258  <SNR>191__scripts()\r\n\t   57              0.013005  <SNR>131_IsInDict()\r\n\t    1   0.042380   0.011695  <SNR>131_ParseFileAssociationList()\r\n\t  103              0.007290  <SNR>4_parse_name()\r\n\t    1   0.009286   0.005968  <SNR>131_CheckLinks()\r\n\t    6              0.005852  <SNR>191__redir()\r\n\t  186              0.005455  <SNR>131_Trim()\r\n\t    3   0.005856   0.005276  <SNR>41__build_module()\r\n```\r\n\r\n+ neobundle \r\n\r\n```\r\n\tFUNCTIONS SORTED ON TOTAL TIME\r\n\tcount  total (s)   self (s)  function\r\n\t    1   0.066579   0.000623  <SNR>141_browse_check()\r\n\t    3   0.058909   0.002727  vital#of()\r\n\t    1   0.042700   0.000025  vital#_c7f20e#new()\r\n\t    2   0.042675   0.000119  <SNR>193_import()\r\n\t    1   0.040882   0.000043  <SNR>113_SetWatchExtension()\r\n\t    1   0.040839   0.000061  <SNR>113_CreateDict()\r\n\t    1   0.040778   0.011425  <SNR>113_ParseFileAssociationList()\r\n\t    4   0.034289   0.024681  DoxygenReadTemplates()\r\n\t    3   0.032798   0.015414  <SNR>193__scripts()\r\n\t    3   0.030485   0.000426  <SNR>193__import()\r\n\t   13   0.028208             TagHighlight#LoadDataFile#LoadFile()\r\n\t    3   0.028024   0.023446  <SNR>193__build_module()\r\n\t    2   0.027718   0.002674  zlib#sys#ostype()\r\n\t  103   0.026822   0.002443  neobundle#config#bundle()\r\n\t    1   0.026240   0.000118  DoxygenRereadTemplates()\r\n\t    1   0.021219   0.001987  <SNR>71_LoadKinds()\r\n\t    1   0.020836   0.000109  <SNR>193_load()\r\n\t   19   0.020401   0.001387  <SNR>118_adddate()\r\n\t    1   0.019232   0.000056  TagHighlight#LoadDataFile#LoadDataFile()\r\n\t   19   0.019014   0.018467  <SNR>118_createtimehandler()\r\n\r\n\tFUNCTIONS SORTED ON SELF TIME\r\n\tcount  total (s)   self (s)  function\r\n\t   13              0.028208  TagHighlight#LoadDataFile#LoadFile()\r\n\t    4   0.034289   0.024681  DoxygenReadTemplates()\r\n\t    3   0.028024   0.023446  <SNR>193__build_module()\r\n\t   19   0.019014   0.018467  <SNR>118_createtimehandler()\r\n\t  583              0.016030  <SNR>193__unify_path()\r\n\t    3   0.032798   0.015414  <SNR>193__scripts()\r\n\t   57              0.012847  <SNR>113_IsInDict()\r\n\t    1   0.040778   0.011425  <SNR>113_ParseFileAssociationList()\r\n\t  103              0.009645  <SNR>4_parse_name()\r\n\t  103              0.008889  <SNR>4_rtp_add()\r\n\t    6              0.006060  <SNR>193__redir()\r\n\t    1   0.008992   0.005763  <SNR>113_CheckLinks()\r\n\t    3   0.006385   0.005713  <SNR>43__build_module()\r\n\t  186              0.005328  <SNR>113_Trim()\r\n\t    1              0.004271  <SNR>124_FencCreateMenu()\r\n\t  103   0.015490   0.003813  neobundle#config#init_bundle()\r\n\t  133              0.003378  <SNR>43__unify_path()\r\n\t    3   0.006961   0.003348  <SNR>43__scripts()\r\n\t   40              0.002860  zlib#rc#script_load_guard()\r\n\t    3   0.058909   0.002727  vital#of()\r\n```\r\n\r\n[NeoBundle]: https://github.com/Shougo/neobundle.vim \"neobundle\"\r\n[vundle]: https://github.com/gmarik/vundle \"vundle\"\r\n","number":124,"url":"https://api.github.com/repos/gmarik/vundle/issues/124","comments":0,"assignee":null},"action":"opened"}