Skip to content

Reusing Body Tools

kimjooyoon edited this page Oct 3, 2026 · 2 revisions

반복 조립의 검사·실행 비용

2026-10-03. 개발 #1192는 필수 여섯 검사와 독립 증거 검증 뒤 병합했습니다. main #1193도 필수 여섯 검사와 독립 증거·승격 결속을 확인해 병합했습니다. 깨끗한 main ed2c2cac를 Go1.27.1로 빌드해 로컬에 설치했습니다. 아래 v3 도구 보관을 설치본에서 사용할 수 있습니다.

같은 공작물을 반복해 다룰 때는 검사한 공구를 보관하고, 지금 만든 물건과 실제 동작은 다시 확인합니다. Gooo의 반복 바디 실행도 이 방식으로 비용을 줄입니다.

한 프로세스에서 반복하기

컴파일러 저장소에서 다음 명령은 바디를 만들자마자 두 번 실행하고 기록을 저장합니다.

gooo body-path-run \
  --source examples/body-codegen/typed-path-compound.gooo.fixture \
  --activity Combined \
  --path-plan examples/body-codegen/typed-path-compound-plan.json \
  --cases examples/body-codegen/typed-path-runtime-cases.json \
  --out fresh-body-results --repeat 3

출력 폴더는 새 경로여야 합니다. --model /absolute/path/model.json을 추가하면 호환되는 로컬 판단기를 사용하고, 생략하면 결정론적으로 조립합니다. 반복은 1..16회이고 매번 현재 사례를 실행합니다. 파일 사용 안내.

무엇을 보관하는가

  • 첫 성공 빌드의 실행파일 한 개를 보관합니다. 매번 현재 내용의 해시를 확인합니다.
  • 정규 Go1.27.1 실행파일의 첫 실제 버전 확인을 보관합니다. 현재 Go 파일 전체의 해시, 내장 버전·플랫폼, 파일 위치와 자식 환경이 같아야 재사용합니다.
  • 셸 래퍼는 다른 실행 의존성을 확인할 수 없어 매번 새 버전 확인을 실행합니다.
  • 현재 원본·계획·선택·부모 기록은 다시 확인하고 현재 입력을 두 번 실행합니다.
  • 프로세스 종료·취소 때 보관한 확인과 임시 실행파일을 정리합니다.

새 runtime v3의 toolchain_reference.source_check는 원래 확인입니다. toolchain_reference.reused가 true인 요청은 현재 toolchain에 자식 실행을 만들어 넣지 않습니다. 버전과 빌드를 모두 재사용하면 자원 분모는 실제 실행 두 개, 바디를 새로 빌드하면 세 개입니다. 이전 비용은 원래 관측에서 볼 수 있습니다.

지금까지의 관측

기존 한영 파일 두 개의 모델·결정론 네 조건을 번갈아 실행했습니다. 각 버전의 최초 요청 8회와 반복 요청 40회를 구분했습니다. 반복 응답 중앙값은 79.91→63.69ms, 현재 자식 CPU 합 중앙값은 31.21→13.37ms였습니다. Go 버전 자식은 48→8회이고 전체 실제 실행 192회·12,288/12,288 기대값과 생성 Go 96/96 일치를 유지했습니다. 모델 가중치 갱신·새 의도 과제는 0개입니다.

설치본에서 새로 8회 생성·4회 모델 판단·16회 실제 실행을 수행해 1,024/1,024와 기존 생성 Go 여덟 파일의 일치를 확인했습니다. 모델 반복 응답은 한국어 76.82ms· 영어 74.07ms, 결정론은 66.31·63.95ms였습니다. 첫 응답과 원본도 남겼으며 서로 다른 시점의 시간과 앞선 번갈아 실행한 측정은 구분해 읽습니다.

응답은 초기 모델 준비·저장을 제외한 생성과 실행 시간입니다. CPU는 현재 자식의 user+system 시간이고 컴퓨터 전체 사용률은 측정하지 않았습니다. macOS 한 장비의 반복 관측이므로 다른 장비의 시간을 보장하지 않습니다.

과거 v2 기록 8쌍의 비교 결과가 기존 도구와 정확히 같았습니다. 현재 v3 기록 16쌍과 v2→v3 네 쌍도 읽었습니다. 다른 프로필의 분모 변화는 숫자 완전성 향상으로 계산하지 않습니다. 기록 비교 안내.

실제 원본·실패·측정 범위·재현 · 개발 PR #1192

Gooo

배우기

직접 다뤄 보기

원리와 개발

공개 코드와 모델

Clone this wiki locally