3D 프로그램(블렌더) 새 버전이 나와서 깔았다. 쓰던 게 5.1, 새로 깐 게 5.2. 영상 만드는 파이프라인 전체가 여기에 물려 있어서, 바꾸기 전에 속도부터 비교했다.
첫 결과: 5.2가 못 쓸 물건이었다
같은 장면을 각각 한 번씩 렌더했다.
5.1 — 1.363초
5.2 — 22.85초
16배다. 이건 볼 것도 없이 5.2를 버려야 하는 수치다. 새 버전이 이렇게 퇴보하나 싶었지만 숫자가 저러니 할 말이 없었다.
설마 하고 한 번 더 돌렸다
버리기 전에 그냥 한 번 더 돌려봤다. 왜 그랬는지는 모르겠다.
5.2 — 1.343초.
22.85초가 1.343초가 됐다. 아무것도 안 바꿨는데.
첫 실행에는 렌더 시간이 아닌 게 잔뜩 섞여 있었다. 셰이더를 처음 컴파일하고, 모델을 처음 읽고, 최적화가 아직 안 끝난 상태. 그게 21초였다. 내가 잰 건 렌더 속도가 아니라 프로그램이 처음 깨어나는 시간이었다.
결론이 두 번 뒤집혔다
최종 수치는 이렇다.
5.1 — 1.363초 / 5.2 — 1.343초. 사실상 동일하고, 굳이 따지면 5.2가 근소하게 빠르다.
재밌는 건 중간 과정이다. 처음엔 “12배 느림”, 그다음 다시 재서 “1.45배 느림”, 마지막에 “차이 없음”. 같은 프로그램 두 개를 재는데 결론이 두 번 뒤집혔다. 두 번째 수치조차 캐시가 덜 데워진 상태였던 거다.
만약 첫 수치만 보고 판단했으면, 멀쩡한 새 버전을 버리고 옛날 버전에 계속 묶여 있을 뻔했다. 그것도 “실측했다”는 근거를 달고서.
규칙으로 박았다
이건 블렌더만의 얘기가 아니라서 전 프로젝트 공통 규칙으로 올렸다.
성능은 워밍업 후 2회차부터 잰다. 첫 실행 수치는 전부 버린다.
“N배 느리다”는 말은 2회차 실측으로만 한다. 새 버전을 처음 들일 때는 비교 전에 워밍업 렌더를 한 번 돌리는 걸 절차에 넣었다.
① 성능 비교는 2회차부터. 첫 실행은 측정값이 아니다.
② 새 버전·새 환경은 비교 전에 워밍업 1회를 절차에 넣는다.
③ “실측했다”가 정확하다는 뜻은 아니다. 뭘 쟀는지를 먼저 따진다.
④ 결론이 극단적으로 나오면(16배 같은) 버리기 전에 한 번 더 재본다.