GN⁺: M3 MacBook 업그레이드 여부 결정을 위한 개발자 빌드 시간 추적
(incident.io)M3 맥북 업그레이드의 가치는 무엇인가?
- M1/M2 칩에서 M3로 개발자 기계를 업그레이드하는 것이 가치가 있는지 알아보기 위함.
- 개발자 생산성을 정량화하는 것은 어려움.
- 빠른 피드백 루프가 개발자의 효율성을 높임.
빌드 텔레메트리 수집
- Go 핫 리로더를 사용하여 개발자 노트북에서 빌드 텔레메트리 추적.
- 시스템 차원, 런타임 메트릭, 빌드 텔레메트리 등을 추적하기 위해 자체 빌드 도구 개발.
- 데이터 웨어하우스로 텔레메트리 이벤트 전송.
데이터 분석
- 고품질 데이터를 생성하고 충분한 데이터셋을 구축한 후 분석 시작.
- 빌드 시간이 시스템마다 다르게 나타날 수 있으므로 단순 평균 비교는 불가능.
- OpenAI의 새로운 코드 해석기를 사용하여 데이터 분석.
OpenAI 어시스턴트 생성
- 데이터를 CSV로 내보내고 OpenAI 어시스턴트에 제공하여 분석.
- gpt-4-1106-preview 모델을 사용하여 데이터 분석.
데이터 정제 (전원 출처, 취소 등)
- 실패하거나 취소된 빌드 제외.
- 배터리 전원에서 실행되는 빌드는 성능 저하 가능성으로 AC 전원에서 실행된 빌드만 고려.
모든 빌드가 동일하지 않음
- Go 프로젝트는 다양한 '패키지'로 구성되어 있으며, 컴파일러는 변경 사항이 있는 경우에만 재컴파일.
- 빌드 시간은 즉각적(<3초), 빠름(<30초), 중간(30초-1분), 느림(1분+)으로 분류됨.
M1과 M2 비교
- AC 전원과 성공적인 빌드 데이터를 정제한 후 M1과 M2 플랫폼 비교.
- M2 Max가 M1 Pro보다 빌드 속도에서 월등히 빠름.
M3 내부 비교
- M2 Pro 16GB와 M2 Max 32GB의 빌드 시간 비교를 통해 메모리가 큰 영향을 미치지 않음을 확인.
- M3 Pro와 M3 Max의 성능 차이가 가격 차이를 정당화하지 못함.
M1, M2, M3 종합 비교
- M1, M2, M3 플랫폼 간 빌드 시간 비교를 통해 M2가 M1에 비해 큰 향상을 보임.
- M3는 M2에 비해 소폭 개선됨.
메모리가 정말 차이를 만들지 않는가?
- 메모리가 빌드 시간에 큰 영향을 미치지 않는 것으로 나타남.
- 링커 시간에 대한 데이터 분석을 통해 메모리가 링킹 성능에 영향을 미침을 확인.
M3 맥북이 오고 있다!
- 새로운 Space Black M3 Pro 노트북이 개발자의 생산성 향상에 도움이 될 것으로 결정.
- M1 사용자는 36GB 메모리를 탑재한 M3 Pro로 업그레이드할 예정.
- M2 사용자는 현재 성능이 좋으므로 업그레이드를 기다림.
GN⁺의 의견
- 이 연구는 개발자의 빌드 시간을 줄이는 것이 생산성 향상에 직접적인 영향을 미친다는 것을 보여줌.
- 메모리가 빌드 시간에 큰 영향을 미치지 않지만, 링커 시간에는 영향을 미칠 수 있음을 발견한 것은 흥미로움.
- OpenAI를 사용한 데이터 분석 방법은 다른 기업이나 개발자들에게도 유용한 사례가 될 수 있음.
Hacker News 의견
-
첫 번째 댓글 요약:
- 글이 잘 쓰여졌으며 데이터 수집과 분석 방법이 다양함.
- 하지만 랩탑을 나란히 두고 동일한 시나리오에서 컴파일 시간을 측정하는 것이 더 간단하고 정확했을 것.
- 회사 전체 통계를 수집하는 것은 편향을 초래할 수 있음. 예를 들어, 신입 직원과 오래된 직원이 사용하는 랩탑의 차이가 있을 수 있음.
- 샘플링이 완전히 무작위적이고 대표적이지 않을 수 있음을 지적.
-
두 번째 댓글 요약:
- 과학자로서 프로그래머들이 데이터를 다루는 방식에 관심이 많음.
- 아름다운 그래프를 그렸고, ChatGPT를 사용하여 분석을 빠르게 자동화함.
- 그러나 메모리와 칩 유형에 따른 변동성이 있었음에도 선형 회귀를 사용하지 않음.
- 히스토그램을 그렸지만 비교하기 어려움. 평균값과 오차 막대를 추가하거나 누적 분포 함수를 사용할 수 있었음.
-
세 번째 댓글 요약:
- 개발자 생산성 향상을 위해 새 랩탑 대신 AWS 상에 개발 스택을 오프로딩하는 프로젝트를 진행했던 경험 공유.
- 이는 여러 해에 걸친 프로젝트였으며, 결국 랩탑을 업그레이드하는 것이 더 나았을 것이라는 결론.
-
네 번째 댓글 요약:
- Chromium과 Node.js의 전직 핵심 기여자이자 현재 gRPC Core/C++의 핵심 기여자.
- 빌드 시간에 크게 신경 쓰지 않음. 중요한 것은 화면 크기와 품질, 저장 장치의 속도.
- 개인 프로젝트에는 Bazel을 사용하며, CPU 발전보다 빌드 시스템이 더 큰 영향을 미침.
-
다섯 번째 댓글 요약:
- iOS 개발에 대한 개인적 연구 결과 공유.
- M2 Pro와 M1 Pro의 성능 차이가 크지 않음. M3 Pro는 M2 Pro와 비슷한 수준.
- 결과적으로 사용한 M1 Pro를 구입하여 만족함. 비용 대비 성능이 우수함.
-
여섯 번째 댓글 요약:
- AI를 데이터 분석에 사용하는 것에 대한 조언.
- R이나 Stata와 같은 도구를 사용하는 것이 더 간단하고 재현 가능함.
- 데이터를 이해하고 생성 메커니즘을 파악하는 것이 데이터 분석에서 가장 어려운 작업.
- 현재 AI 기술이 이를 수행할 수 있는지에 대한 의문 제기.
-
일곱 번째 댓글 요약:
- 개발자들이 로컬 랩탑에서 전체 환경을 실행할 수 있는 것이 큰 성과.
- 회사에서 전체 시스템을 단일 기계에서 실행할 수 있는 경험은 드물다고 언급.
-
여덟 번째 댓글 요약:
- 글의 저자로부터의 댓글.
- Go 컴파일 프로파일링, 핫-리로더 구축, AI를 사용한 빌드 데이터셋 분석 등에 대한 내용.
- M1에서 M3 Pro로 업그레이드하는 것이 가치가 있다고 결론 내림. M2와 M3의 차이는 크지 않아 업그레이드할 가치가 없음.
-
아홉 번째 댓글 요약:
- 데이터를 CSV로 내보내고, 목적을 설명하는 프롬프트와 함께 '어시스턴트'를 생성하는 과정에 대한 설명.
- Microsoft가 Excel에 이 과정을 통합하면 큰 변화가 될 것이라는 의견.
-
열 번째 댓글 요약:
- M3 Pro가 M2보다 약간 더 나은 성능을 보이며, M1 Pro보다는 훨씬 더 나음.
- M3의 성능 대비 전력 효율과 렌더링 성능이 더 우수하지만, 더 많은 메모리 대역폭을 가진 M3 Ultra가 나올 때까지 업그레이드를 기다리기로 결정.