Sono costretto a usare Windows 10 per un progetto. Sì, preferirei usare GNU / Linux. Per mantenere la sanità mentale, ho provato a considerare Windows come un bootloader per Emacs :)
Sfortunatamente, Magit (una delle mie parti preferite di Emacs, che compensa anche la mancanza di una buona riga di comando su Windows) è insopportabilmente lento. Ho un SSD, 16 GB di RAM e un quad-core i7 ma ci vogliono otto secondi per essere eseguito magit-status
su un piccolo repository. Quindi, quando voglio mettere in scena un'altra modifica, ci vogliono circa 5 secondi per file .
Ecco cosa ho provato:
$ git config --global core.preloadindex true
$ git config --global core.fscache true
$ git config --global gc.auto 256
- Aggiunta dell'intero progetto all'elenco di esclusione di Windows Defender (il mio unico AV)
- Impostando il
magit-git-executable
normale msysgit che ho scaricato ( https://git-for-windows.github.io/ ). Ho controllato egit status
qui ci vuole <1 secondo. So chemagit-status
fa molto di più, ma è troppo.
Qualcuno può suggerire modi per renderlo più veloce? Non riesco a immaginare nessuno che usi Magit su Windows in questo modo.
È stato suggerito che questa domanda è un duplicato, ma hanno chiesto:
Faccio fatica a capire perché Emacs ha notevolmente più brevi tempi di avvio su Ubuntu rispetto a Windows. Qualcuno conosce la risposta?
Conosco almeno alcuni motivi per cui Emacs, Git e Magit sono più lenti su Windows. Sto chiedendo come ottimizzare Magit per fare meno cose, risultati nella cache o qualcosa del genere, anche se è a scapito della funzionalità.
git
comandi equivalenti dalla riga di comando?
magit-git-executable
sarà probabilmente un po 'più veloce (quelli dentro cmd
e in bin
realtà sono wrapper, se executable-find
restituisce uno di essi magit tenterà di impostare magit-git-executable
il git "reale"). 8 secondi per un piccolo repository suona come se ci fosse qualcos'altro che non va, ma impiega ~ 0.8s per il repository di Magit qui (Windows 8).
magit-refresh-verbose
su t
.
git-status
impiega <1 secondo? Dovrebbe essere essenzialmente istantaneo. C'è qualche ritardo percettibile?