@hatiolab/figure-model 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"shape-ops.js","sourceRoot":"","sources":["../src/shape-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape-ops.js","sourceRoot":"","sources":["../src/shape-ops.ts"],"names":[],"mappings":"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"}
package/dist/words.d.ts CHANGED
@@ -97,19 +97,19 @@ export declare const SEGMENT_PRESETS: readonly number[];
97
97
  /** The design inputs that stand for the figure's size, in mm. */
98
98
  export declare const FIGURE_SIZE_INPUTS: Readonly<Record<Axis, string>>;
99
99
  /**
100
- * The shape of a figure's `type` -- the name boards call it by: `SCREAMING_SNAKE_CASE` starting with a capital, 3 to 32
101
- * characters. Capitals are the figure namespace; built-in scene components use lower-case kebab names, so a figure that
102
- * follows this shape cannot share a name with one.
100
+ * The shape of a figure's `type`: lower-case kebab, a letter first, 2 to 64 characters. A type is unique inside its
101
+ * namespace; boards name a figure by its full name `{namespace}/{type}` (`names.ts`), whose `/` keeps it apart from
102
+ * built-in scene components such as `conveyor` (ADR-0114).
103
103
  */
104
104
  export declare const TYPE_PATTERN: RegExp;
105
105
  export declare const TYPE_LENGTH: {
106
- readonly min: 3;
107
- readonly max: 32;
106
+ readonly min: 2;
107
+ readonly max: 64;
108
108
  };
109
109
  /**
110
110
  * The temporary type a figure carries before anyone names it. One rule for the code that makes it and the code that
111
111
  * recognises it: the modeller makes it, the release gate and the AI tools recognise it. It passes `TYPE_PATTERN`
112
- * (`FIGURE_MTU10FWR`), so the shape check alone would not catch it.
112
+ * (`figure-mtu10fwr`), so the shape check alone would not catch it.
113
113
  */
114
114
  export declare function placeholderType(now?: number): string;
115
115
  /** Whether a type is the temporary name given before anyone names the figure. */
package/dist/words.js CHANGED
@@ -97,21 +97,21 @@ export const SEGMENT_PRESETS = [8, 12, 16, 24, 32, 48];
97
97
  /** The design inputs that stand for the figure's size, in mm. */
98
98
  export const FIGURE_SIZE_INPUTS = Object.freeze({ x: 'size.x', y: 'size.y', z: 'size.z' });
99
99
  /**
100
- * The shape of a figure's `type` -- the name boards call it by: `SCREAMING_SNAKE_CASE` starting with a capital, 3 to 32
101
- * characters. Capitals are the figure namespace; built-in scene components use lower-case kebab names, so a figure that
102
- * follows this shape cannot share a name with one.
100
+ * The shape of a figure's `type`: lower-case kebab, a letter first, 2 to 64 characters. A type is unique inside its
101
+ * namespace; boards name a figure by its full name `{namespace}/{type}` (`names.ts`), whose `/` keeps it apart from
102
+ * built-in scene components such as `conveyor` (ADR-0114).
103
103
  */
104
- export const TYPE_PATTERN = /^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$/;
105
- export const TYPE_LENGTH = { min: 3, max: 32 };
104
+ export const TYPE_PATTERN = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
105
+ export const TYPE_LENGTH = { min: 2, max: 64 };
106
106
  /**
107
107
  * The temporary type a figure carries before anyone names it. One rule for the code that makes it and the code that
108
108
  * recognises it: the modeller makes it, the release gate and the AI tools recognise it. It passes `TYPE_PATTERN`
109
- * (`FIGURE_MTU10FWR`), so the shape check alone would not catch it.
109
+ * (`figure-mtu10fwr`), so the shape check alone would not catch it.
110
110
  */
111
111
  export function placeholderType(now = Date.now()) {
112
- return `FIGURE_${now.toString(36).toUpperCase()}`;
112
+ return `figure-${now.toString(36)}`;
113
113
  }
114
- const PLACEHOLDER_TYPE = /^FIGURE_[0-9A-Z]{8}$/;
114
+ const PLACEHOLDER_TYPE = /^figure-[0-9a-z]{8}$/;
115
115
  /** Whether a type is the temporary name given before anyone names the figure. */
116
116
  export function isPlaceholderType(type) {
117
117
  return PLACEHOLDER_TYPE.test(type);
package/dist/words.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"words.js","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAS5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAU,CAAA;AAGhG;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0D,MAAM,CAAC,MAAM,CAAC;IACnG,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;CACvC,CAAC,CAAA;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG9G;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAU,CAAA;AAG3D,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAgC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;AAEpF,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAwB,EAAE,CAAE,aAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAE5H;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAA;AAIvB;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,2GAA2G;IAC3G,iBAAiB,EAAE,CAAC;IACpB,qEAAqE;IACrE,cAAc,EAAE,IAAI;IACpB,0EAA0E;IAC1E,iBAAiB,EAAE,OAAO;IAC1B;;;;OAIG;IACH,eAAe,EAAE,GAAG;IACpB;;;OAGG;IACH,gBAAgB,EAAE,EAAE;IACpB;;;;OAIG;IACH,oBAAoB,EAAE,MAAM;IAC5B,mDAAmD;IACnD,oBAAoB,EAAE,CAAC;IACvB,mGAAmG;IACnG,eAAe,EAAE,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,CAAC;CACN,CAAA;AAEV;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAEzE,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAmC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AAE1H;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,+BAA+B,CAAA;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAW,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;IACtD,OAAO,UAAU,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;AACnD,CAAC;AAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAA;AAE/C,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"words.js","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAS5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAU,CAAA;AAGhG;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0D,MAAM,CAAC,MAAM,CAAC;IACnG,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;CACvC,CAAC,CAAA;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG9G;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAE/B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAU,CAAA;AAG3D,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAgC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;AAEpF,mDAAmD;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAwB,EAAE,CAAE,aAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAE5H;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAA;AAIvB;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,2GAA2G;IAC3G,iBAAiB,EAAE,CAAC;IACpB,qEAAqE;IACrE,cAAc,EAAE,IAAI;IACpB,0EAA0E;IAC1E,iBAAiB,EAAE,OAAO;IAC1B;;;;OAIG;IACH,eAAe,EAAE,GAAG;IACpB;;;OAGG;IACH,gBAAgB,EAAE,EAAE;IACpB;;;;OAIG;IACH,oBAAoB,EAAE,MAAM;IAC5B,mDAAmD;IACnD,oBAAoB,EAAE,CAAC;IACvB,mGAAmG;IACnG,eAAe,EAAE,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,CAAC;CACN,CAAA;AAEV;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAEzE,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAmC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AAE1H;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,+BAA+B,CAAA;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAW,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;IACtD,OAAO,UAAU,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;AACrC,CAAC;AAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAA;AAE/C,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAA"}
@@ -216,3 +216,21 @@ body 20,000, 사본 12,000). 프레임마다 rig 갱신 1회, 평가 1회(D는
216
216
  - 후속 과제(이번 발행 범위 밖): 500대 크기 변경에서 프레임당 약 80 MB(대당 약 160 KB)의 할당.
217
217
  - 발행 순서: figure-model 발행 → things-scene 후보(`candidate/figure-rig-changes`, 조회 범위 축소 포함) 병합과 figure-model 범위 갱신,
218
218
  build와 전체 시험 → things-scene 발행·제품 설치 → 크기 변경, 롤러 회전, visibility, 부착물, 평면도 확인.
219
+
220
+ ## 8. 발행 (2026-10-05)
221
+
222
+ - figure-model 0.3.4(커밋 04b6b12까지, 깨끗한 사본에서 발행), things-scene 10.1.73(병합 7ba1b7ee, 범위 9a4a2404). operato-application에
223
+ 두 판을 설치했다(빌드 15개 통과).
224
+ - 설치본 화면 확인(operato-figure :3300, 로드된 vendor 번들에서 things-scene 10.1.73의 변경분 rig 코드 확인). 모델러의 미리보기에서,
225
+ 저장된 모델을 바꾸지 않고(저장 상태 그대로) 설치본의 rig를 직접 조작하고 결과를 커널 스냅샷과 견주었다.
226
+ - 컨베이어 크기·롤러 개수: 길이 2,400·3,000·3,600·4,800 mm에서 롤러 24·30·36·48개. 크기 변경은 `changes`로 그려졌고, rig가 그린
227
+ 상태(`lastDrawn`)가 매번 커널 스냅샷과 같았다.
228
+ - 롤러 회전: 미리보기의 회전 조작값을 움직이면 `poses`(pose step)로 그려졌다.
229
+ - 램프 flag(DRY_ROOM): 문을 열면(1, 0.5) 빛나는 부품이 그려지고 닫으면(0) 빠졌다. `changes`로 그려졌고 스냅샷의 visible과 같았다.
230
+ - 로봇 집게 부착(6축 로봇암): 부착점 노드를 만들 때 스냅샷이 만들어지지 않았다(0회). 관절을 움직인 pose step 네 번과 크기를 바꾼
231
+ `changes` 세 번 뒤에도 노드가 커널의 자리와 차이 0으로 같았고, 같은 노드가 다시 쓰였다.
232
+ - 평면도: `FigureInstance.topView`가 전체 평가(`evaluateOnce`)로 만든 결과가 이전 경로(인스턴스 evaluator 스냅샷)와 같았다. 로봇
233
+ 세 크기(형상 12개, 선언 범위를 넘는 크기는 1,080으로 맞춰짐), 컨베이어 세 크기(형상 40·52·116개, 20,000 mm는 10,000으로 맞춰짐).
234
+ - 확인용으로 페이지 안에서만 등록한 이름(`verify-robot`, `verify-conveyor`)은 확인 뒤 해제했고, 보드나 첨부는 만들지 않았다. 띄운 서버는
235
+ 확인 뒤 내렸다.
236
+ - 이번 작업은 완료다. 후속 과제로 남긴다: 500대 크기 변경의 프레임 목표 16.7 ms 미달, 프레임당 약 80 MB 할당.
@@ -0,0 +1,314 @@
1
+ # Figure 후속 성능 실행 계획 (2026-10-05)
2
+
3
+ 결정 정본: [ADR-0108 현행 보완](../../operato-application/adr/ADR-0108.md).
4
+ 출발점: 0.3.4·10.1.73 일반 변경분 채택 및 설치본 검증 완료. 과거 튜닝 성과는 유지한다.
5
+ 제품 목표와 원자료는 [성능 요약](evaluation-performance-summary-2026-10-05.md)을 따른다.
6
+ 이 문서는 실행 상태를 관리하며 예정 효과를 성과로 기록하지 않는다.
7
+
8
+ ## 순서와 현재 상태
9
+
10
+ | 순서 | 후보 | 먼저 확인할 근거 | 채택 조건 | 현재 상태 |
11
+ | ---- | ------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------- |
12
+ | P1 | 내부 임시 객체·배열의 할당 감소 | kernel/changes buffer/rig/geometry allocation stack, bytes/frame와 GC | 큰 할당 출처 한 곳의 개선, 비계측 전체 프레임·p95와 소유권 유지 | 호출 트리 집계 완료; 첫 대상 = 병합 은행 형상 키 |
13
+ | P2 | 반복 부품 공통 계산 | 반복마다 같은 변환·id/path·layout을 재구성하는 양 | 동일 연산 순서·bit 동일과 구조 변경 지원 | 첫 후보 측정; 기본 채택 보류 |
14
+ | P3 | 동일 입력 평가 공유 | 동일/서로 다른 size·pose에서 중복량 | 모든 의존성·정의/버전 포함, 불변 공유와 인스턴스 격리, bounded cache | 검토 예정 |
15
+ | P4 | resize 이벤트 프레임 단위 반영 | 이벤트 수 대비 실제 update 수, 제품 drag trace | 부착/시뮬레이션·최종 입력 정확성, 조회 시 최신성 | 중복 존재 확인 후 판단 |
16
+ | P5 | 실행 계획 간소화 | 상수 의존 노드·미사용 중간 출력·실행 횟수 | 공개 값 조회/진단 보존, 전체 평가 동등성, 컴파일·메모리 비용 포함 | 검토 예정 |
17
+
18
+ P2 코드의 단서: `repeat@1`은 매 평가마다 path/id, identity 행렬과 여러 compose 결과를 만든다.
19
+ 변경분은 structure 여부가 결정되기 전에도 ids/keys/paths/indexes를 모으며 path 동결 사본을 구성한다.
20
+ 이는 읽기에서 찾은 후보이지 최대 병목 또는 제거 가능하다는 확정은 아니다. 프로필로 순서를 정한다.
21
+
22
+ ## P1 측정 설계
23
+
24
+ - 기존 `check-figure-gap.mjs`에 `ALLOCATION_PROFILE=1`을 추가해 collected object를 포함한 sampled heap
25
+ allocation stack 원자료와 할당 위치별 bytes/frame을 보존한다. profiling과 frame timing 구간은 분리한다.
26
+ - 첫 실행은 한 판의 동일 빌드로 board 60대·크기만 교대, 1 round의 D1/D2/C다. 이름 D/C는 기존 harness 호환용이며
27
+ **이번에는 모두 동일 baseline**이다. 이것으로 성능 개선을 주장하지 않는다.
28
+ - 원자료에 GPU, build 경로, 입력, 계측 조건을 남긴다. minified 위치는 sourcemap 또는 함수/호출 사슬로 확인한다.
29
+ 익명 노드를 임의로 커널에 귀속하지 않는다. sampled bytes는 추정량이고 총 할당의 정확한 계수가 아니다.
30
+ - 프로필로 가장 큰 할당 출처를 고른 뒤 같은 입력의 500대에서 확인한다. 동일 입력과 인스턴스별 상이 입력을 따로 검증한다.
31
+ - 구현 후보마다 회귀 시험→수정→관련 시험·build→비계측 browser A/A·A/B 순서로 진행한다.
32
+ 반복 수와 순서는 사전에 고정한다. 중앙값·p95, 생성·보유/peak/dispose 메모리, draw·triangles·body·copies를 보고한다.
33
+ - 전체 스냅샷 미조회/가끔 조회/매 프레임 조회, resize 뒤 pose, flag 및 부착점도 확인한다.
34
+
35
+ ## 제약과 중단 기준
36
+
37
+ - 내부 작업 버퍼는 재사용 가능하지만 호출자 소유 typed array와 이전 snapshot을 덮어쓰지 않는다.
38
+ - 읽기 수명 제한만으로 내부 가변 객체 노출을 허용하지 않는다. 전체 `plan.evaluate`의 가변 소유권도 유지한다.
39
+ - 기능 생략, 동일 시간 강제, 출력 clamp로 측정량을 줄이지 않는다. metadata·id·path·selection을 보존한다.
40
+ - 후보 하나당 먼저 고정한 A/B 실행을 마친 뒤 판단한다. 효과가 관찰 변동과 구별되지 않으면 보류하고 다음 큰 비용으로 이동한다.
41
+ - 이미 다른 세션에서 구현한 LOD(ADR-0116)는 별도다. baseline은 OFF이고 이번 작업은 해당 runtime 소스를 변경하지 않는다.
42
+ - 패키지 발행·제품 의존성 갱신은 별도 결정이다. 다른 세션의 worktree/미커밋/index를 변경하지 않는다.
43
+
44
+ ## 기록
45
+
46
+ 2026-10-05: ADR-0108 일반 변경분 현행 계약과 P1~P5를 보완했고 ADR-0109·0111의 초기 현황에
47
+ 후속 발행/설치 검증 링크를 추가했다. 런타임 최적화는 아직 적용하지 않았다.
48
+
49
+ ### P1 첫 관찰 (60대, 동일 baseline 3회)
50
+
51
+ Apple M5 Metal, board, 폭 2400↔2496만 교대, warmup 30/frame 60.
52
+ 기존 gap harness의 D1/D2/C를 모두 같은 things-scene.mjs에 연결했다.
53
+ heap profiler는 4,096 byte 간격으로 collected object를 포함하고 각 60프레임의 할당을 샘플링한다.
54
+ 총 sampled allocation: 10.21 / 10.49 / 10.49 MiB/frame.
55
+
56
+ | 대표 할당 위치 | 위치별 sampled KiB/frame (3회) | 해석 |
57
+ | --------------- | ------------------------------ | -------------------------------------------------------------------------------- |
58
+ | fromChanges | 933 / 948 / 940 | rig의 body·중첩 pose 재구성과 외형 입히기 후보 |
59
+ | planOf → wA | 928 / 895 / 914 | 배치 계획 호출 사슬. minified 함수 wA를 source로 매핑한 후 대상 확정 |
60
+ | advance → l → A | 804 / 801 / 801 | kernel 일반 변경 처리 호출 사슬. 익명/압축 이름을 정확히 귀속하기 전 최적화 금지 |
61
+
62
+ 이는 상위 selfSize 위치 일부이며 각 함수 전체의 inclusive allocation 또는 정확한 byte 계수가 아니다.
63
+ 대부분의 할당을 위 세 곳이 모두 설명한다고 주장하지 않는다.
64
+
65
+ `fromChanges` source를 확인하면 각 body를 새 record로 만들고 pose의 중첩 배열을 구성한 뒤
66
+ `dressOne`에서 다시 spread해 dressed record를 만든다. bindings Map와 palette 사본도 만든다.
67
+ 후보는 가변 renderer 내부 전용 body/pose의 재사용과 중간 body wrapper 제거다.
68
+ 다만 이전 `lastDrawn` 보관·LOD 경계 캐시·스냅샷 조회·실패 중간 상태·plan 동일성에 대한 계약부터
69
+ 확인해야 한다. 현재 LOD 작업과 겹치는 rig 소스는 즉시 수정하지 않는다.
70
+
71
+ 원자료: things-scene/test/browser/figure-vs-js/gap-1791199515874.json 및 같은 디렉터리 allocation-*.json.
72
+ 생성 원자료는 기존 ignore 정책대로 로컬에 남기고 요약을 이 문서에 보존한다.
73
+
74
+ ### P1 규모 확인 (500대, 동일 baseline 3회)
75
+
76
+ 같은 board/입력/계측 조건에서 77.22 / 76.97 / 76.93 MiB/frame이었다.
77
+ 비계측 frame 중앙값은 49.67 / 51.65 / 50.01ms였다. 세 표식은 같은 빌드이므로 성능 개선을 뜻하지 않는다.
78
+ 대표 self allocation 위치는 fromChanges 약 7.7MiB/frame, planOf→wA 약 7.3MiB/frame,
79
+ 커널 advance→l→A 약 6.5MiB/frame이었다(두 번째 실행). 60대의 호출 사슬과 일치한다.
80
+ 원자료: things-scene/test/browser/figure-vs-js/gap-1791199606515.json 및 allocation-board-500-*.json.
81
+
82
+ 첫 구현 후보는 fromChanges의 중간 body wrapper·중첩 pose 객체 할당을 줄이는 것으로 특정한다(잠정 — 아래 「첫 대상 다시 정하기」에서 바꿨다).
83
+ 적용 전에 lastDrawn 보관, LOD revision/bounds cache, shape/body 동일성, 공개 evaluation의 동결 및 실패 시
84
+ 그림 유지 계약을 시험으로 고정한다. 전체 가변 객체 재사용보다 중간 wrapper 제거를 먼저 비교한다.
85
+ 공개 소유권을 바꾸는 재사용은 허용하지 않는다. rig 소스는 다른 세션 LOD 변경이 있으므로 별도 변경 단위로 진행한다.
86
+ 아직 runtime 후보는 적용하지 않았다. 이번 완료 범위는 ADR 현행화·실행 계획·profile 도구·기준 분석이다.
87
+
88
+ ### P1 호출 트리 집계 (기존 원자료 6개, 새 측정 없음)
89
+
90
+ 원자료: things-scene/test/browser/figure-vs-js/allocation-board-{60,500}-{D1,D2,C}-r1-*.json(세 표식 모두 같은 빌드). 각 할당(sampled
91
+ selfSize)을 호출 사슬의 잎에서 뿌리 쪽으로 올라가며 처음 만나는 기준 프레임 하나에만 귀속했다. 기준 프레임은 압축 뒤에도 이름이
92
+ 남는 메서드다. 커널 `advance`·`read`·`changed`·`value`·`place`, rig 외형 `fromChanges`·`dressOne`·`dress`, 그리기 준비 `draw`·`planOf`·
93
+ `drawMerged`·`drawCarried`, 보드·렌더러 `onchange`·`_applyProps`·`set`·`trigger`·`renderThreeD`·`render`. rig `update` 바로 아래에서 어느
94
+ 기준에도 닿지 않은 것과 기준이 없는 것은 미분류다. 값은 MiB/frame(비중), 합계는 전체 sampled bytes와 같다.
95
+
96
+ 중복 없는 분류:
97
+
98
+ | 분류 | 60대 D1 / D2 / C | 500대 D1 / D2 / C |
99
+ | ------------ | ----------------------------------------- | -------------------------------------------- |
100
+ | 커널 | 4.92 (48.2%) / 4.92 (46.9%) / 4.94 (47.1%) | 41.01 (53.1%) / 41.00 (53.3%) / 40.94 (53.2%) |
101
+ | 그리기 준비 | 3.70 (36.3%) / 3.96 (37.8%) / 3.95 (37.7%) | 23.26 (30.1%) / 23.05 (30.0%) / 23.04 (30.0%) |
102
+ | rig 외형 | 0.94 (9.2%) / 0.95 (9.1%) / 0.95 (9.0%) | 7.94 (10.3%) / 7.89 (10.2%) / 7.94 (10.3%) |
103
+ | 보드·렌더러 | 0.61 (6.0%) / 0.61 (5.8%) / 0.62 (5.9%) | 4.85 (6.3%) / 4.88 (6.3%) / 4.86 (6.3%) |
104
+ | 미분류 | 0.04 (0.3%) / 0.04 (0.3%) / 0.04 (0.3%) | 0.16 (0.2%) / 0.15 (0.2%) / 0.15 (0.2%) |
105
+ | 합계 | 10.21 / 10.49 / 10.49 | 77.22 / 76.97 / 76.93 |
106
+
107
+ 분류 안의 inclusive 순위(부모와 자식은 합산하지 않는다. 들여쓴 줄은 바로 위 줄 안에 포함된다). 압축 이름은 번들 원문의 그 위치
108
+ 코드로 정체를 확인한 것만 적었다.
109
+
110
+ | 분류·호출 | 60대 D1 / D2 / C | 500대 D1 / D2 / C |
111
+ | ---------------------------------------------------------- | ------------------ | ------------------- |
112
+ | 커널 `advance` | 분류 합계와 같음 | 41.01 / 41.00 / 40.94 |
113
+ | `step`(압축 `A`) | 4.65 / 4.65 / 4.68 | 38.93 / 38.91 / 38.85 |
114
+ | 행 `repeat@1` 실행 | 1.17 / 1.16 / 1.16 | 9.76 / 9.78 / 9.71 |
115
+ | 밀어내기 `extrude@1` 실행 → `runExtrude`(압축 `Hw`) | 1.11 / 1.12 / 1.13 | 9.32 / 9.31 / 9.33 |
116
+ | 밀어내기 매개변수 해석(압축 `Tw`) | 0.41 / 0.41 / 0.41 | 3.42 / 3.41 / 3.44 |
117
+ | 형상 description 생성(압축 `Iw`) | 0.55 / 0.55 / 0.56 | 4.66 / 4.67 / 4.67 |
118
+ | `rigid@1` 실행 | 0.70 / 0.69 / 0.70 | 5.82 / 5.86 / 5.82 |
119
+ | 행렬곱 `mm`(압축 `fM`, 여러 연산이 부름) | 0.62 / 0.60 / 0.61 | 5.09 / 5.11 / 5.06 |
120
+ | 그리기 준비 `drawMerged` | 2.34 / 2.63 / 2.60 | 12.94 / 12.81 / 12.77 |
121
+ | 병합 은행 조회 `acquireMergedFigureGeometry`(압축 `rk`) | 2.22 / 2.51 / 2.48 | 12.21 / 12.08 / 12.05 |
122
+ | 부품 형상 문자열 키 `figureGeometryKeyOf`의 map·join | 1.03 / 1.05 / 1.04 | 8.61 / 8.67 / 8.60 |
123
+ | 그리기 준비 `planOf` | 1.06 / 1.03 / 1.05 | 8.44 / 8.37 / 8.38 |
124
+ | `figureRenderBatchesOf`(압축 `wA`, body별 signature 포함) | 0.97 / 0.94 / 0.96 | 7.93 / 7.85 / 7.88 |
125
+ | rig 외형 `fromChanges` | 0.94 / 0.95 / 0.95 | 7.94 / 7.89 / 7.94 |
126
+ | 보드 컴포넌트 `set`(내장) | 0.30 / 0.31 / 0.31 | 2.49 / 2.49 / 2.49 |
127
+ | 보드 `WebGLRenderer.render` | 0.13 / 0.12 / 0.13 | 0.99 / 1.01 / 1.00 |
128
+
129
+ 미분류는 프레임 시계 `tick`의 Set 등과 rig `update`의 입력 준비(`stateOverrides`)다(500대 0.15~0.16 MiB/frame).
130
+
131
+ ### 첫 대상 다시 정하기
132
+
133
+ | 후보 | 할당(500대) | 제거 가능한 몫(코드 읽기 추정) | 직접 CPU 근거 | 계약 위험 |
134
+ | ---------------------------------------------------- | ---------------- | --------------------------------------------------------------- | ---------------------------------------------------------------- | --------- |
135
+ | 병합 은행 조회의 부품 형상 키 | 8.6 MiB (11%) | 크기 변경에서 형상이 그대로인 부품(16개 중 11개)의 키 | 은행 조회가 rig당 6~8 µs(Node, 형상 키 4.5 µs), 500대 `drawMerged` 5.5 ms | 낮음(동결 형상만 캐시, things-scene 안) |
136
+ | 배치 계획의 body signature(`figureRenderBatchesOf`) | 7.9 MiB (10%) | 그대로인 형상의 signature | 500대 `planOf` 5.5 ms | 낮음(figure-model 안, 같은 규칙) |
137
+ | 밀어내기 매개변수 해석 | 3.4 MiB (4%) | 노드의 고정 매개변수에만 의존해 거의 전부 | 따로 재지 않음 | 매우 낮음 |
138
+ | 행 `repeat@1` 실행 | 9.8 MiB (13%) | 사본 id·path·offset 일부(P2) | 따로 재지 않음 | 중간(id·path·선택 의미) |
139
+ | rig 외형 `fromChanges` | 7.9 MiB (10%) | 중간 body wrapper·중첩 자세의 일부 | 500대 1.75 ms | 중간(lastDrawn·LOD·실패 시 유지) |
140
+ | 밀어내기 형상 생성(`runExtrude` 본체) | 9.3 MiB (12%) | 낮음(새 크기의 형상은 새로 만들어야 한다) | — | — |
141
+
142
+ - 첫 대상을 `fromChanges`에서 병합 은행 조회의 부품 형상 키로 바꾼다. 할당은 `fromChanges`보다 약간 크고, 제거 가능한 몫이 분명하며,
143
+ 직접 CPU 근거가 있고, 계약 위험이 낮다. 두 번째는 같은 규칙의 배치 계획 signature, 세 번째는 밀어내기 매개변수 해석이다.
144
+ - 이 두 키 캐시는 2026-10-05에 한 번 구현해 되돌린 후보다(형상별 키 캐시: 배치 계획 약 0.2 ms 감소, 전체 프레임 효과 미확인,
145
+ things-scene `docs/plans`와 completeness review 기록). 그때 남긴 시험(`things-scene/test/figure-geometry-key.check.js`,
146
+ figure-model `render-batches.test.ts`)을 출발점으로 쓴다. 당시 판단은 60대 위주의 페이지 교차 측정이었다. 이번에는 500대
147
+ 실행 단위 A/B로 판단하고, 효과가 변동과 구별되지 않으면 다시 보류한다.
148
+ - 할당 감소가 GC 시간에 비례한다고 가정하지 않는다. 채택은 비계측 전체 프레임 중앙값·p95와 메모리로 판단한다.
149
+ - 행 실행과 `fromChanges`는 그 뒤에 다시 고른다.
150
+
151
+ ### P1 첫 대상: 병합 은행의 부품 형상 키 캐시 — 채택하지 않음 (2026-10-05)
152
+
153
+ things-scene `candidate/merged-shape-key`(병합하지 않음). 깊게 동결된 형상만 형상 객체마다 segments별 키를 `WeakMap`에 둔다. 가변
154
+ 형상과 겉만 동결된 형상은 매번 계산한다. 시험: 키 시험에 LOD 단계(segments) 전환을 더했고, figure 시험 92개와 단위 시험 2,713개가
155
+ 통과했다. 모든 형상 캐시, 겉만 동결 검사, segments 무시 결함을 심어 실패를 확인했다.
156
+
157
+ 측정(`check-figure-gap.mjs`, 보드, 크기만 교대, 사전 고정 6 round × D1·D2·C, 순서 여섯 가지 한 번씩, 워밍업 30, 비계측 150프레임).
158
+ D는 v10 `f287f5f7` 빌드, C는 그 위에 이 후보만 얹은 빌드다.
159
+
160
+ | 500대 | A/A (D2−D1) round별 | 후보 (C−D1) round별 |
161
+ | ---------------------------- | -------------------------------- | ------------------------------ |
162
+ | 프레임 중앙값 차이 ms | −0.35 −0.09 −0.62 −0.46 +0.42 −0.10 | +0.57 +0.30 +1.33 +1.68 +0.70 +0.53 |
163
+ | p95 차이 ms | −0.36 −2.06 −2.02 −0.55 +0.49 −0.22 | +3.09 +6.74 +7.10 +6.25 +5.83 +6.87 |
164
+
165
+ | 500대 | D1 | D2 | C |
166
+ | ------------------------- | ------------------- | ------------------- | -------------------- |
167
+ | 할당 MB/frame(6회) | 76.75~77.26 | 76.92~77.39 | 72.61~73.05 |
168
+ | 보유 MB(측정 뒤 GC) | 42.7~43.3 | 42.7~43.3 | 46.9 |
169
+ | 단계 계측 merged / GC ms | 5.49 / 4.72 | 5.80 / 4.51 | 5.63 / 5.36 |
170
+
171
+ 60대(회귀 확인, 2 round): 프레임 차이 −0.63, −0.08 ms(A/A −2.97, +0.22), 할당 10.5 → 10.0 MB/frame, 보유 10.1 → 10.7 MB. 작업량(draw call,
172
+ 삼각형, body, 사본)은 두 판이 같았다.
173
+
174
+ 판정: 채택하지 않는다. 할당은 프레임당 약 4.2 MB(5%) 줄었지만, 500대에서 전체 프레임 중앙값이 6 round 모두 0.3~1.7 ms, p95가 3~7 ms
175
+ 나빠졌고 보유 메모리가 3.6 MB 늘었다. 병합 단계 시간은 줄지 않았다. 크기 변경마다 새로 생기는 형상 객체가 짧게 사는 WeakMap 키로
176
+ 쌓여 GC 처리가 늘었다는 해석은 GC 시간·보유량 증가와 맞지만 직접 확인하지 않았다.
177
+
178
+ 다음: 지시대로 상수 node parameter 파싱(밀어내기 매개변수 해석, 500대 3.4 MiB)으로 넘어간다.
179
+
180
+ ### P1 두 번째: 상수 node parameter 파싱 — 효과 미확인, 보류 (2026-10-05)
181
+
182
+ figure-model `candidate/extrude-param-cache`(병합하지 않음). 컴파일된 plan이 자기 사본의 node 매개변수를 동결하고, `extrude@1`이 실행
183
+ 중에 읽는 레이아웃과 description을 동결된 매개변수 객체마다 한 번만 만든다. 호출자 문서의 매개변수는 동결하지 않고, 동결되지 않은
184
+ 매개변수는 매번 읽는다. 결과에는 그 객체가 들어가지 않는다(숫자와 이름만 복사). 시험 `src/shape-params.test.ts` 3개, 결함 3종(동결 여부
185
+ 무시, 결과 faces 공유, 호출자 매개변수 동결)을 심어 실패를 확인했고 기존 759개가 통과했다(figure-model HEAD는 다른 세션의
186
+ `src/render-lod.test.ts` 타입 오류 하나로 `npm test`가 타입 검사에서 멈춰 있어 `node --test`로 직접 돌렸다. 정상 `npm test`·build 검증은
187
+ 그 오류가 고쳐진 뒤에 다시 한다 — 직접 실행한 통과만으로 전체 검증 완료가 아니다).
188
+
189
+ 측정은 첫 후보와 같다(보드, 크기만 교대, 6 round × D1·D2·C, 순서 여섯 가지, 워밍업 30, 비계측 150프레임). things-scene은 같은 `f287f5f7`이고
190
+ D는 figure-model HEAD `83737e3`, C는 그 위에 이 후보만 얹었다.
191
+
192
+ | 500대 | A/A (D2−D1) round별 | 후보 (C−D1) round별 |
193
+ | ---------------------- | -------------------------------------- | --------------------------------------- |
194
+ | 프레임 중앙값 차이 ms | +0.02 −0.20 −1.38 −1.07 +0.93 +0.54 | −0.76 −1.31 −1.07 −1.20 +0.51 −1.32 |
195
+ | p95 차이 ms | −1.10 +0.92 −2.44 −1.10 +1.92 −0.78 | −2.78 −2.49 −1.79 +1.28 +1.61 −1.48 |
196
+
197
+ | 500대 | D1 | D2 | C |
198
+ | ----------------------------- | ------------ | ------------ | ------------ |
199
+ | 할당 MB/frame(6회) | 76.84~77.19 | 76.86~77.31 | 70.51~71.12 |
200
+ | 보유 MB(측정 뒤 GC) | 42.7~43.3 | 42.7~43.3 | 43.3 |
201
+ | 단계 계측 커널 / GC ms | 20.08 / 4.71 | 19.78 / 4.74 | 18.79 / 4.51 |
202
+
203
+ 60대(회귀 확인, 2 round): 프레임 차이 +0.94, +0.25 ms(A/A −0.05, −0.23), 커널 2.51 → 2.44 ms, 할당 10.8 → 10.0 MB/frame, 보유 같음. 작업량은
204
+ 같았다. 기능 회귀는 없다(시험과 작업량). 성능 회귀는 미확정이다 — 60대 두 회차 모두 후보가 느렸고, 2회로는 판단할 수 없다.
205
+
206
+ 판정: 효과 미확인으로 보류하고 후보로 보존한다. 할당이 프레임당 약 6 MB(8%) 줄고 단계 계측의 커널이 약 1.1 ms 줄었지만, 전체 프레임 중앙값 차이는
207
+ 6 round 중 5회 감소했어도 모두 같은 조건 A/A의 범위(−1.38~+0.93) 안에 있고, p95는 섞였다. 메모리 비용은 없다.
208
+
209
+ 다음 차례(사용자 지시의 순서는 여기까지): 남은 후보는 행 `repeat@1` 실행(P2, 9.8 MiB)과 `fromChanges`(7.9 MiB)다. 커널과 할당의
210
+ 감소가 측정되는 후보들이 단독으로는 전체 프레임 검출 폭에 닿지 않으므로, 다음 결정이 필요하다 — 후보를 계속 하나씩 볼지, 측정 반복을
211
+ 늘려 검출 폭을 낮출지.
212
+
213
+ ### P2 첫 후보: 행 `repeat@1` 실행의 오프셋·id 재사용 — 기본 채택 보류 (2026-10-05)
214
+
215
+ figure-model `candidate/repeat-run` `07625f8`(병합하지 않음, a5363bd 위). 일반 평가의 행 실행이 복사본 하나의 오프셋 자세
216
+ `compose(pose, { r: identity(), t })`를 멤버마다가 아니라 복사본마다 한 번 만들고, 행 node의 멤버 key·path가 값으로 같은 동안 복사본 id
217
+ 문자열을 다시 쓴다. compose 호출과 그 순서는 같아서 자세는 이전 실행과 bit 단위로 같다. path는 복사본마다 새 배열이다(전체 평가 결과는
218
+ 호출자 소유). 자세 단계의 끝 행(terminal) 경로는 이미 오프셋을 재사용하고 있어 손대지 않았다.
219
+
220
+ 시험 `src/repeat-run.test.ts` 4개를 구현 전에 썼다: 처음 작성된 행 실행을 시험 안에 두고 fixture 시퀀스 전체에서 −0까지 bit 비교(id·path·
221
+ key·index·shape 포함), 개수 증감, 안쪽 두 행의 개수가 3+2 ↔ 2+3으로 바뀌어 멤버 수는 같고 path만 다른 격자(바깥 행은 z 회전·rise 포함),
222
+ path가 복사본마다·평가마다 다른 배열인지. 결함 다섯(멤버 검사 누락, 멤버 수만 검사, path 공유, 합성 순서 변경, rise 누락)을 심어 모두
223
+ 실패를 확인했다. fixture만으로는 멤버 검사 누락과 합성 순서 변경이 통과해서 격자 시험을 더했다. HEAD 구현도 네 시험을 통과한다.
224
+ 직접 실행한 시험 763개 통과, 정상 시험 명령은 기존 타입 오류로 차단(`src/render-lod.test.ts:42`, a5781eb). 정상 `npm test`·build가
225
+ 통과해야 최종 검증이 끝난다.
226
+
227
+ 측정은 앞 후보들과 같다(보드, 크기만 교대, 6 round × D1·D2·C, 순서 여섯 가지, 워밍업 30, 비계측 150프레임; 60대는 회귀 확인용 2 round).
228
+ things-scene `f287f5f7`, D = figure-model `a5363bd`, C = 이 후보. D 번들은 매개변수 파싱 측정의 기준 번들과 바이트 단위로 같다.
229
+
230
+ | 500대 | A/A (D2−D1) round별 | 후보 (C−D1) round별 |
231
+ | ---------------------- | -------------------------------------- | --------------------------------------- |
232
+ | 프레임 중앙값 차이 ms | −0.32 +0.34 −0.34 +1.38 +0.27 +1.43 | +1.87 −0.13 −0.98 −0.38 −0.70 −1.14 |
233
+ | p95 차이 ms | +0.07 +0.17 −1.85 +3.85 +1.68 +3.59 | +4.57 −0.15 −1.78 −0.46 +1.16 −0.40 |
234
+
235
+ | 500대 | D1 | D2 | C |
236
+ | ----------------------------- | ------------ | ------------ | ------------ |
237
+ | 할당 MB/frame(6회) | 77.19~77.42 | 76.89~77.38 | 76.44~76.82 |
238
+ | 보유 MB(측정 뒤 GC) | 42.7~43.2 | 42.7~43.3 | 42.2~42.7 |
239
+ | 단계 계측 커널 / GC ms | 19.67 / 4.55 | 20.06 / 4.92 | 19.09 / 4.57 |
240
+
241
+ 작업량은 같았다: draw call 2001, 삼각형 944012, body 20000, 행 복사 12000(60대: 241, 113292, 2400, 1440).
242
+
243
+ 60대(2 round): 프레임 중앙값 차이 −0.22, +0.59 ms(A/A −0.38, −0.11), p95 차이 +4.01, +0.13 ms(A/A +0.28, −0.61). 커널 2.47 → 2.35 ms
244
+ (D2도 2.35), 할당 10.49~10.70 → 10.41~10.42 MB/frame, GC 0.44 → 0.42 ms, 보유 10.1 → 10.3 MB. 검증한 시험과 측정 장면에서 기능 차이를 발견하지 못했다(정상 시험 명령은 아직 차단).
245
+ 성능 회귀는 미확정이다 — 첫 회차 p95가 A/A 밖으로 나빠졌고, 2회로는 반복되는지 가를 수 없다.
246
+
247
+ 원인 확인(별도 할당 프로필, 500대 3 round, 이 실행의 프레임 시간은 판단에 쓰지 않는다): 실제로 서빙된 번들
248
+ (`things-scene/test/browser/figure-vs-js/gap-D/bundle.js` sha256 `ac1f744a…bd7a0`, `gap-C/bundle.js` sha256 `021859f9…c338`)에서
249
+ 장면용 `repeat@1` 실행 화살표 함수를 0부터 센 위치로 찾았다 — D 97275행 230217열, C 97275행 230238열. 같은 번들에는 측정 도구가
250
+ `parseFigureAsset`용으로 함께 묶은 node_modules figure-model의 사본이 98711행 12열에 있다. 각 샘플은 자기 node의 selfSize로 한 번만
251
+ 세고, 호출 경로 어디에든 그 함수가 있으면 넣었다(부모·자식 inclusive를 더하지 않는다).
252
+
253
+ | 500대, MiB/frame(3회 평균) | D1 | D2 | C |
254
+ | ------------------------------ | ----- | ----- | ----- |
255
+ | 장면용 `repeat@1`(하위 호출 포함) | 9.738 | 9.737 | 9.211 |
256
+ | `parseFigureAsset`용 사본 | 0 | 0 | 0 |
257
+ | 두 사본이 한 경로에 함께 | 0 | 0 | 0 |
258
+ | 전체 | 77.21 | 77.19 | 76.75 |
259
+
260
+ 원자료: `allocation-board-500-{D1,D2,C}-r{1,2,3}-17912030…json`(같은 폴더). 서빙 번들 사본은 `figure-vs-js/repeat-run-2026-10-05/`
261
+ (다음 측정이 `gap-*/bundle.js`를 덮으므로). 재집계: things-scene `test/browser/figure-allocation-under.mjs`(91a5ac30) — 위치·번들 해시를
262
+ 인자로 받고 해시가 다르면 거절한다.
263
+ 행 실행의 할당은 약 0.53 MiB/frame(5.4%) 줄었고, 전체 할당 감소(약 0.45 MiB, 0.6%)와 크기가 맞는다. 할당 감소를 GC 감소로 옮겨 적지 않는다.
264
+
265
+ 판정: 기본 채택 보류, 후보와 검증 기록을 보존한다. 500대 프레임 중앙값은 6회 중 5회 줄었지만 +1.87 ms(A/A −0.34~+1.43 밖, 위쪽)와
266
+ −0.98·−0.38·−0.70·−1.14 ms(아래쪽 밖)가 섞여 있고, 범위를 벗어났다는 것만으로 통계적으로 확정된 차이는 아니다. p95는 500대와 60대
267
+ 모두 첫 회차에서 나빠졌다. 일관된 개선은 확인하지 못했고, p95 악화의 반복성도 미확정이다. 할당 감소는 이 판정을 대신하지 않는다.
268
+
269
+ ### P1 세 번째: `fromChanges`의 중간 객체 — 기본 채택 보류 (2026-10-05)
270
+
271
+ things-scene `candidate/from-changes-dress` `3e7101e6`(병합하지 않음, v10 `91a5ac30` 위). 변경분이 알린 body 하나마다 기존 코드가
272
+ 만들던 할당 지점 가운데 셋을 없앴다: (1) `fromChanges`가 먼저 만든 body 객체 — `dressOne`이 이것을 펼쳐 최종 body를 다시 만들었다,
273
+ (2) `dressOne`의 반환 포장 `{ dressed, visible, ref }`, (3) 표시 여부를 읽는 함수 객체. 최종 body는 그림이 담는 결과 객체라 여전히
274
+ 만든다(펼치기 대신 처음부터 그 모양으로). 새 자세 객체와 그 배열 넷도 그대로 만든다 — 이전 그림이 그 자세를 계속 갖는다. 모양과 재질
275
+ 조회는 `dressOne`과 같은 도움 함수를 쓴다. `evaluation()`·`evaluateOnce()`는 바꾸지 않았다.
276
+
277
+ 시험(구현 전): 앞 단계에서 남긴 그림이 뒤 단계 뒤에도 그대로인지, 각 body가 그 모양의 재질 객체 하나를 쓰는지, `evaluation()`에 쓴 값이
278
+ rig가 그린 것에 닿지 않는지(`test/figure-merge.check.js`). 결함 다섯(body마다 새 재질, 표시 여부 무시, 필드 순서, 이전 그림의 자세
279
+ 배열에 덮어쓰기, segments 누락)을 심어 모두 실패를 확인했다. `npm run test:figure` 92개(figure-model 소스 대상), `npm test` 2715개 통과.
280
+
281
+ 측정: 앞 후보들과 같은 방식. D = things-scene `91a5ac30`, C = 이 후보, figure-model은 둘 다 `a5363bd` dist. 이번 D는 앞 후보들의 D와
282
+ 같지 않다(그 사이 v10에 1dd84d39가 들어왔다) — 앞 후보들과 절대 시간을 비교하지 않는다.
283
+
284
+ | 500대 | A/A (D2−D1) round별 | 후보 (C−D1) round별 |
285
+ | ---------------------- | -------------------------------------- | --------------------------------------- |
286
+ | 프레임 중앙값 차이 ms | +0.05 −1.39 +0.18 +6.77 +5.78 +3.16 | +0.69 −0.38 +1.92 +4.78 +4.61 +1.24 |
287
+ | p95 차이 ms | +0.05 −8.80 +1.53 +6.43 +5.20 +3.79 | +1.62 −6.71 +2.13 +4.62 +3.06 −1.29 |
288
+
289
+ | 500대 | D1 | D2 | C |
290
+ | ----------------------------- | ------------ | ------------ | ------------ |
291
+ | 할당 MB/frame(6회) | 76.91~77.33 | 77.01~77.44 | 76.49~76.80 |
292
+ | 보유 MB(측정 뒤 GC) | 42.7~43.3 | 42.7~43.2 | 42.7~43.3 |
293
+ | 단계 계측 `fromChanges` ms | 1.79 | 1.82 | 2.43 |
294
+ | 단계 계측 커널 / GC ms | 19.75 / 5.31 | 20.05 / 4.73 | 19.90 / 4.91 |
295
+
296
+ 이번 500대 A/A는 4~6회차에서 +3~+7 ms로 크게 벌어졌다(같은 build끼리) — 실행 간 변동이 컸다는 근거다. 환경 변화가 원인인지는
297
+ 확인하지 않았다. 그 폭 안에서는 후보의 프레임 효과를 가를 수 없다. 작업량은 같았다(draw call 2001, 삼각형 944012, 장면 body 20000, 행 복사 12000; 60대 241, 113292, 2400, 1440).
298
+
299
+ 60대(2 round): 프레임 중앙값 차이 +0.66, +0.42 ms(A/A +0.29, +0.16), p95 +0.24, −0.37 ms(A/A +0.41, −1.01; 둘 다 A/A 범위 −1.01~+0.41 안이지만 이 범위만으로 효과를 판정하지 않는다). 단계 계측 `fromChanges`
300
+ 0.21·0.20 → 0.32 ms, 할당 10.68~10.79 → 10.08~10.39 MB/frame, 보유 같음. 검증한 시험과 측정 장면에서 기능 차이를 발견하지 못했다.
301
+
302
+ 원인 확인(별도 할당 프로필, 500대 3 round): 서빙 번들 사본 `figure-vs-js/from-changes-2026-10-05/gap-D.bundle.js` sha256
303
+ `a82cb950…f944`, `gap-C.bundle.js` sha256 `1e851a55…a489`, `fromChanges`는 두 번들 모두 0부터 센 97275행 332754열.
304
+ `test/browser/figure-allocation-under.mjs`로 집계: `fromChanges`(하위 호출 포함) D1 7.938 · D2 7.908 · C 6.932 MiB/frame(약 1.0 MiB,
305
+ 12.6% 감소), 전체 77.28 · 77.09 · 76.49.
306
+
307
+ 변경 body 수(별도 계측 실행, 비계측 비교와 분리; 같은 Figure, 같은 두 크기, rig 500개, 30프레임, A·B 같음): 프레임마다 changes step 500(rig마다 하나),
308
+ 변경분이 알린 body 20000, 새로 만든 최종 body 20000, structure 0. 크기 교대가 모든 body를 옮기므로 이 장면에서는
309
+ 변경 body 수가 장면 body 수와 같다 — 다른 입력에서는 다를 수 있다. 할당 감소를 body 수로 나누면 약 52 B/body다(표본 추정).
310
+
311
+ 판정: 기본 채택 보류, 후보와 기록을 보존한다. `fromChanges` 할당은 약 1.0 MiB/frame 줄었지만, 단계 계측의 `fromChanges` 시간이 500대에서
312
+ 약 0.6 ms, 60대에서 약 0.1 ms 늘었다. 60대 프레임 중앙값은 두 회차 모두 A/A보다 느렸다(성능 회귀 미확정). 500대 프레임
313
+ 효과는 이 실행의 A/A 폭 안이라 확인하지 못했다. 시간이 늘어난 이유는 추론이다: 최종 body를 `{ id }`에서 시작해 속성 8~9개를 차례로
314
+ 더하면 객체 안의 자리를 넘어 별도 속성 저장소가 생길 수 있고, 펼치기는 처음부터 맞는 크기로 만든다 — 확인하지 않았다.