Dos victorias de paralelismo
Dos configuraciones desbloquean speedups significativos para operaciones cotidianas. core.preloadIndex paraleliza las llamadas lstat que git status hace; el checkout paralelo (Git 2.32+) paraleliza las escrituras de archivos durante git checkout, git switch y git restore.
Preload index
git config core.preloadIndex true
Checkout paralelo
git config checkout.workers 0
git config checkout.thresholdForParallelism 100
Cuándo más ayuda
- Cambiar branches con miles de diferencias de archivos.
- Checkout inicial tras clone.
- Restaurar conjuntos de rutas grandes vía
git restore. - Filesystems con apertura por archivo lenta (Windows NTFS, shares de red).
Medición
time git -c checkout.workers=1 checkout main
time git -c checkout.workers=0 checkout main
GIT_TRACE2_PERF=1 git checkout big-branch 2>&1 | grep -i checkout
Advertencias
El checkout paralelo interactúa con filtros smudge: los filtros se ejecutan secuencialmente por archivo, pero múltiples archivos van en paralelo.
Advertencias de filesystem
En Windows, software antivirus puede serializar las creaciones de archivos.
Errores comunes
Deshabilitar preloadIndex en discos lentos, "para ahorrar threads" — al revés.