-
Notifications
You must be signed in to change notification settings - Fork 0
Reusing Body Tools
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 네 쌍도 읽었습니다. 다른 프로필의 분모 변화는 숫자 완전성 향상으로 계산하지 않습니다. 기록 비교 안내.