Incredibly slow on write
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
- Ambito
- performance, tooling
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
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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di google/vim-codefmt
-
Write a codefmt FAQ Apertaenhancement
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
google/vim-codefmt#53 ·
-
Add meson format Apertanew formatter
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
google/vim-codefmt#243 ·
-
LCF for lua formatting Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
google/vim-codefmt#240 · 1 commento ·
-
Add `:CodefmtInfo` command to report diagnostics to help users check config / diagnose problems Apertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
google/vim-codefmt#234 · 2 commenti ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 45/100
google/vim-codefmt#222 · 3 commenti ·
Tutte le issue di google/vim-codefmt
Issue simili
-
🎙️ task - perf(jest): source keyrack once per run in globalSetup, not per suite file (~25s each) Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
brave/brave-browser#59300 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Borewit/music-metadata#2755 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100