어느날 제 vscode 가 코딩을 하다가 갑자기 느려집니다.
주로 파일을 저장하거나 이름을 바꾸거나 삭제할 때 파일감시자 응답을 기다린다면서 버버버버버벅 댑니다.
껏다 켜면 괜찮다가 5분마다 또 시작 됩니다.
와- 생산성이 팍 떨어집니다.
안되겠습니다.
이유를 찾아야 겠습니다.
vscode 가 느려집니다.
그런데 왜 느려지는지 알길이 없습니다.
일단, vscode 의 모든 확장을 다 끄고 사용해 봅니다.
Github Copilot
, surround try catch
등 자주 쓰던 확장 기능이 없으니 생산성이 확 떨어지지만, vscode 가 1시간 이상 작업을 했음에도 더이상 느려지지 않네요.
그렇습니다.
역시 Extensions, 즉 확장 프로그램들이 문제 였어요.
문제 있는 확장을 찾고 싶어졌습니다.
그래야 없앨 수 있으니까요.
(글 작성일 기준 저는 63개를 사용중 이네요. 오... 언제 이렇게 많아졌지)
이 많은 63개 확장에서 문제 있는 확장 하나라 콕 찝어서 찾으려면..
다 끄고 하나씩 켜면서 문제가 나올지 안나올지 해보는 것? 밖에는 떠오르지 않네요.
그런데... 앗!
그것은 바로…
번역이 구려서 그렇지, Extension Bisect 라는 기능이 있습니다.
Bisect
는 이분법을 말합니다.
Extension Bisect
는 vscode의 확장을 이분법 한다는 뜻이고요.
무슨 뜻이냐고요?
용어가 너무 축약되서 그렇지, 그냥 문제 있는 확장을 찾기 위해서
이분법 탐색을 사용 하겠다는 뜻입니다.
즉,
일단 가진 확장을 다 꺼보고, 문제가 재현되는지 검사 합니다.
그 다음엔 절반을 꺼보고, 검사
그 담엔, 절반의 절반
이런식으로 최종 문제가 재현되는 확장이 나올때까지 절반씩 확장 수를 줄여가며 찾는 것이죠.
vscode
에서 F1
을 누르고 bisect
를 치고 Start Extension Bisect
를 실행 합니다.
이제 이 상태로 1~5분간 vscode에서 작업을 해봅니다.
해봤는데, 아까 같이 느려지는 문제가 없으면, 재현할 수 없음
을 누르면 됩니다.
그러면,
[재현할 수 있음]
을 누르고, [없음]
누르는 겁니다.이렇게 몇바퀴 하다보면 최종적으로 나를 느려지게 만든 문제의 확장이 튀어나오게 됩니다.
(스크린샷을 위해 뽑은것, 실제 이 확장이 문제 있는 것은 아닙니다.)
이제 여러분이 할일은 하나뿐 입니다.
역시 세상을 넓고, 찾으면 다 있더군요.
오늘도 즐거운 코딩 되세요.
아임웹 CTO 매튜 드림.
안 그래도 똑같은 문제를 겪고 vscode 개발 생산성이 많이 떨어졌었는데 감사합니다!