Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Incredibly slow on write

Aperta
#215 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
vim

Direzione di ricerca

Riproduci il ritardo con il vimrc minimo e il workflow di profiling del salvataggio/chiusura descritto nell’issue. Inizia tracciando FormatCode, codefmt#FormatBuffer() e maktaba#syscall#Call(); il lavoro sarà completato quando il salvataggio del file TypeScript di 200 righe non comporterà più la latenza di diversi secondi segnalata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

Describe the bug
Recently upgraded vim, and I noticed that vim basically froze every time I wrote a file. I opened a typescript file with about 200loc and profiled using this set of commands: https://stackoverflow.com/a/12216578/3269537
To profile I just opened the file and saved it, then closed the file.

Output:

FUNCTIONS SORTED ON TOTAL TIME                                    count  total (s)   self (s)  function
    9   5.210759   0.000624  maktaba#function#Call()  
    2   2.642967   0.000312  codefmt#FormatBuffer()
    3   2.611224   0.000173  maktaba#syscall#Call()   
    3   2.610018   0.000436  <SNR>80_DoSyscallCommon()
    3   2.605518   0.000057  maktaba#function#Apply()
    3   2.603859   0.001205  maktaba#syscall#DoCall()
    2   2.402088   0.001135  42()                         
    1   1.472221   0.000255  <SNR>33_FormatBufferAndSetRepeat()
    1   1.171017   0.000016  <SNR>32_FmtIfAutoEnabled()  
    2   0.240567   0.000527  <SNR>38_GetFormatter()   
    2   0.239915   0.000078  <SNR>38_IsAvailable()   
    2   0.239817   0.000679  40() 
    2   0.020809   0.001005  maktaba#buffer#Overwrite()
    2   0.019677   0.019450  maktaba#python#ImportModule()
    7   0.004788   0.000730  maktaba#syscall#GetCommand()
   24   0.003627   0.001727  maktaba#string#Strip()      
    5   0.002999   0.000466  codefmt#formatterhelpers#ResolveFlagT
oArray()                                                          
    2   0.002801   0.000086  maktaba#syscall#WithCwd()
    2   0.002715   0.000076  maktaba#syscall#And()   
  116   0.002186   0.001214  maktaba#ensure#IsString()

notice that maktaba takes ~5s and codefmt takes ~2.5

To Reproduce
Minimal vimrc:

set rtp+=~/.vim/bundle/Vundle.vim     
call vundle#begin()                   
Plugin 'VundleVim/Vundle.vim' 
                                                                            
Plugin 'google/vim-maktaba'                                                 
Plugin 'google/vim-codefmt'                                                 
Plugin 'google/vim-glaive'                                                                                              
                                                                            
call vundle#end()       
call glaive#Install()                                                       
                                                                            
" Set up useful defaults for codefmt.
augroup autoformat_settings                                                 
  autocmd FileType bzl AutoFormatBuffer buildifier
  autocmd FileType c,cpp,proto,arduino AutoFormatBuffer clang-format
  autocmd FileType dart AutoFormatBuffer dartfmt
  autocmd FileType go AutoFormatBuffer gofmt                                
  autocmd FileType gn AutoFormatBuffer gn
  autocmd FileType html,css,sass,scss,less,json,vue,javascript,javascriptreact,typescript,typescriptreact AutoFormatBuffer prettier
  autocmd FileType java AutoFormatBuffer google-java-format
  autocmd FileType python AutoFormatBuffer yapf
  autocmd FileType rust AutoFormatBuffer rustfmt                            
augroup END                                                                                                                                             
Glaive codefmt plugin[mappings]  

autocmd BufWritePre * FormatCode

Expected behavior
Previously this was not nearly this slow. I was expecting a non-noticeable latency on save.

OS (version)
Ubuntu 20.04.3 LTS

Additional context
vim version: VIM - Vi IMproved 9.0 (2022 Jun 28, compiled May 10 2022 08:40:37)

Lingua principale
Vim Script
Stelle
1.1k
Fork
102
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di google/vim-codefmt

Tutte le issue di google/vim-codefmt

Issue simili

Altre issue su Performance

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.