평소 리눅스에서 개발만하다보니 Git 이 윈도우에서 ㅈㄴ 느리다는걸 깨닳은지는 최근임.
당시 윈도우 패키지 지식이 없던터라 msvc로 pre-built 된 Emacs 로 Magit 을 썼었음.
(나뿐만이 아니라 다들 이렇게 순진하게 가다가 뺨 맞더라..)
근데 쉬부랭 commit logs 가 존나 길어질수록 엄청 느리다는것이다.
처음엔 elisp 인터프리터가 윈도우에서 ㅈㄴ 느린걸로 생각했는데, backtrace를 뽑아보니 딱히 느린 구석이없었다.
물론 레이턴시가 빠르다곤 할수없지만, git log 를 뽑는데 7~8초가 걸리는 이유를 설명하지못함.
큰 회사들은 feature 브랜치가 수백 수천개씩 있기도해서 존나 빡치는거다.
한번 재수없게 잘못넣으면 Emacs UI 전체가 멈추는거라 빡친다...
암튼 그래서 wsl 을 이용해보기로했다..여전히 존나느렸다. (직접 빌드하진 않았음)
Windows 의 파일시스템이 달라서 느린건가? 근데 신기한건 mingw 환경에선 전혀 느리지 않고 쾌적하단 것이다...
아니 시벌 대체 왜이러는건가???
r/emacs 에서 관련 내용을 찾아봤는데, 나만 그런게 아니었다.
누군가는 wsl에서 퍼포먼스 다운이 되는 원인을 hyper-v 특유의 리소스 공유 방식때문에 fork() 구현이 매우느리기 때문으로 추정하고, wsl2 에선 그 문제가 해결될거다라고 주장했다..
내가봣을땐 그건 설득력이 떨어지는거같았다......애초에 mingw 에선 ㅈㄴ 빠른데???
난 아직도 이유를 잘모르겟다.. 다만 msys2 환경에서 libgccjit + emacs 28 이 존나 쾌적 짱짱맨!! 하다는 걸 오랜 삽질로 발견한걸 위안삼을뿐....
주변에 돌아봐도 다 결국 나처럼 쓰더라 ..
다만 왜 느린지는 아직도 모르겟다...
나중에 시간나면 wsl2 에서 libgit 부터 빌드해서 테스트해볼수 잇겟지만 딱히 다른 결과가 나올거같진않음..
대체 왜이러는건지 아는 게이있냐?
삼줄요약
- wsl 은 ㅄ임..왜쓰냐?
- libgccjit 짱짱맨
- libgit 은 Windows 에서 '특정 환경' 에서만 ㅈㄴ 느리다..이유는 모르겟다..
윈도우에서는 작은파일 많이 읽을때 백신때매 느려짐
작업관리자에서 디스크 사용량순으로 프로세스 정렬해서 보셈
그걸 어떻게 해결하던데 정확한 방법은 모르겠더라 rustup 설치할때 rust-docs도 엄청 느렸다가 어찌어찌 개선했었음
wsl2에선 빠를거같은디
wsl io 병목아니냐 항상 있었던일
dll을 조까치 만들었나보지
실시간 검사 끄셈
신기하네