@hatiolab/figure-model 0.4.0 โ†’ 0.4.1

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":"editor-workspace.js","sourceRoot":"","sources":["../src/editor-workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-workspace.js","sourceRoot":"","sources":["../src/editor-workspace.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -47,5 +47,6 @@ export { figureTopViewOf, figureTopShapesOf, figureSectionOutline, figureConvexH
47
47
  export { robotArmFigure, ROBOT_ARM_CHAIN } from './examples.ts';
48
48
  export { quadrupedRobotFigure, mobileManipulatorFigure, scaraRobotFigure, humanoidRobotFigure, palletizerRobotFigure, QUADRUPED_LEGS, COBOT_CHAIN, type RobotFigure } from './robots.ts';
49
49
  export { settleFigureClips, FigureClipsDroppedError, type FigureClipConsent, type FigureClipLoss, type FigurePartRenamed } from './clip-keeping.ts';
50
- export { previewFigureCommand, figurePartFaceOf, figureBodyOwnerOf, figureRowOf, figureFaceOverhangOf, type FigureFaceOverhang, type FigureCommandPreview, type FigureBodyMove, type FigureFaceArea, type FigureRowReading } from './command-preview.ts';
50
+ export { previewFigureCommand, seedFigureEvaluation, figurePartFaceOf, figureBodyOwnerOf, figureRowOf, figureFaceOverhangOf, type FigureFaceOverhang, type FigureCommandPreview, type FigureBodyMove, type FigureFaceArea, type FigureRowReading } from './command-preview.ts';
51
+ export { figureWork, measureFigureWork } from './work-counter.ts';
51
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -54,5 +54,6 @@ export { figureTopViewOf, figureTopShapesOf, figureSectionOutline, figureConvexH
54
54
  export { robotArmFigure, ROBOT_ARM_CHAIN } from "./examples.js";
55
55
  export { quadrupedRobotFigure, mobileManipulatorFigure, scaraRobotFigure, humanoidRobotFigure, palletizerRobotFigure, QUADRUPED_LEGS, COBOT_CHAIN } from "./robots.js";
56
56
  export { settleFigureClips, FigureClipsDroppedError } from "./clip-keeping.js";
57
- export { previewFigureCommand, figurePartFaceOf, figureBodyOwnerOf, figureRowOf, figureFaceOverhangOf } from "./command-preview.js";
57
+ export { previewFigureCommand, seedFigureEvaluation, figurePartFaceOf, figureBodyOwnerOf, figureRowOf, figureFaceOverhangOf } from "./command-preview.js";
58
+ export { figureWork, measureFigureWork } from "./work-counter.js";
58
59
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@
4
4
  * different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
5
5
  * and by `kernel-version.test.ts`.
6
6
  */
7
- export declare const FIGURE_KERNEL_VERSION = "0.4.0";
7
+ export declare const FIGURE_KERNEL_VERSION = "0.4.1";
8
8
  //# sourceMappingURL=kernel-version.d.ts.map
@@ -7,5 +7,5 @@
7
7
  * different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
8
8
  * and by `kernel-version.test.ts`.
9
9
  */
10
- export const FIGURE_KERNEL_VERSION = '0.4.0';
10
+ export const FIGURE_KERNEL_VERSION = '0.4.1';
11
11
  //# sourceMappingURL=kernel-version.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * How much whole-figure work has been done: assets compiled (each compile also evaluates the stored inputs once, so a
3
+ * parse, a serialize or a capture is one) and figures evaluated. A count, not a time: the same on every machine and in
4
+ * every run, so a test can hold an interaction to a number of them (the modeller's selection and edit budgets).
5
+ */
6
+ export declare const figureWork: {
7
+ compiles: number;
8
+ evaluations: number;
9
+ };
10
+ /** The work done while `run` runs. */
11
+ export declare function measureFigureWork<T>(run: () => T): {
12
+ result: T;
13
+ compiles: number;
14
+ evaluations: number;
15
+ };
16
+ //# sourceMappingURL=work-counter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-counter.d.ts","sourceRoot":"","sources":["../src/work-counter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;CAAkC,CAAA;AAEzD,sCAAsC;AACtC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAIvG"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * How much whole-figure work has been done: assets compiled (each compile also evaluates the stored inputs once, so a
3
+ * parse, a serialize or a capture is one) and figures evaluated. A count, not a time: the same on every machine and in
4
+ * every run, so a test can hold an interaction to a number of them (the modeller's selection and edit budgets).
5
+ */
6
+ export const figureWork = { compiles: 0, evaluations: 0 };
7
+ /** The work done while `run` runs. */
8
+ export function measureFigureWork(run) {
9
+ const before = { ...figureWork };
10
+ const result = run();
11
+ return { result, compiles: figureWork.compiles - before.compiles, evaluations: figureWork.evaluations - before.evaluations };
12
+ }
13
+ //# sourceMappingURL=work-counter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-counter.js","sourceRoot":"","sources":["../src/work-counter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAA;AAEzD,sCAAsC;AACtC,MAAM,UAAU,iBAAiB,CAAI,GAAY;IAC/C,MAAM,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;AAC9H,CAAC"}
@@ -184,7 +184,7 @@ figure-model `candidate/extrude-param-cache`(๋ณ‘ํ•ฉํ•˜์ง€ ์•Š์Œ). ์ปดํŒŒ์ผ๋œ
184
184
  ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋งค๋ฒˆ ์ฝ๋Š”๋‹ค. ๊ฒฐ๊ณผ์—๋Š” ๊ทธ ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค(์ˆซ์ž์™€ ์ด๋ฆ„๋งŒ ๋ณต์‚ฌ). ์‹œํ—˜ `src/shape-params.test.ts` 3๊ฐœ, ๊ฒฐํ•จ 3์ข…(๋™๊ฒฐ ์—ฌ๋ถ€
185
185
  ๋ฌด์‹œ, ๊ฒฐ๊ณผ faces ๊ณต์œ , ํ˜ธ์ถœ์ž ๋งค๊ฐœ๋ณ€์ˆ˜ ๋™๊ฒฐ)์„ ์‹ฌ์–ด ์‹คํŒจ๋ฅผ ํ™•์ธํ–ˆ๊ณ  ๊ธฐ์กด 759๊ฐœ๊ฐ€ ํ†ต๊ณผํ–ˆ๋‹ค(figure-model HEAD๋Š” ๋‹ค๋ฅธ ์„ธ์…˜์˜
186
186
  `src/render-lod.test.ts` ํƒ€์ž… ์˜ค๋ฅ˜ ํ•˜๋‚˜๋กœ `npm test`๊ฐ€ ํƒ€์ž… ๊ฒ€์‚ฌ์—์„œ ๋ฉˆ์ถฐ ์žˆ์–ด `node --test`๋กœ ์ง์ ‘ ๋Œ๋ ธ๋‹ค. ์ •์ƒ `npm test`ยทbuild ๊ฒ€์ฆ์€
187
- ๊ทธ ์˜ค๋ฅ˜๊ฐ€ ๊ณ ์ณ์ง„ ๋’ค์— ๋‹ค์‹œ ํ•œ๋‹ค โ€” ์ง์ ‘ ์‹คํ–‰ํ•œ ํ†ต๊ณผ๋งŒ์œผ๋กœ ์ „์ฒด ๊ฒ€์ฆ ์™„๋ฃŒ๊ฐ€ ์•„๋‹ˆ๋‹ค).
187
+ ๊ทธ ์˜ค๋ฅ˜๊ฐ€ ๊ณ ์ณ์ง„ ๋’ค์— ๋‹ค์‹œ ํ•œ๋‹ค โ€” ์ง์ ‘ ์‹คํ–‰ํ•œ ํ†ต๊ณผ๋งŒ์œผ๋กœ ์ „์ฒด ๊ฒ€์ฆ ์™„๋ฃŒ๊ฐ€ ์•„๋‹ˆ๋‹ค). โ†’ ์ฐจ๋‹จ ํ•ด์ œ: ์•„๋ž˜ ใ€Œํƒ€์ž… ์ˆ˜์ • ๋’ค ์ •์ƒ ์‹œํ—˜ยทbuild ๊ฒ€์ฆใ€(762๊ฐœ ํ†ต๊ณผ, build ์„ฑ๊ณต).
188
188
 
189
189
  ์ธก์ •์€ ์ฒซ ํ›„๋ณด์™€ ๊ฐ™๋‹ค(๋ณด๋“œ, ํฌ๊ธฐ๋งŒ ๊ต๋Œ€, 6 round ร— D1ยทD2ยทC, ์ˆœ์„œ ์—ฌ์„ฏ ๊ฐ€์ง€, ์›Œ๋ฐ์—… 30, ๋น„๊ณ„์ธก 150ํ”„๋ ˆ์ž„). things-scene์€ ๊ฐ™์€ `f287f5f7`์ด๊ณ 
190
190
  D๋Š” figure-model HEAD `83737e3`, C๋Š” ๊ทธ ์œ„์— ์ด ํ›„๋ณด๋งŒ ์–น์—ˆ๋‹ค.
@@ -222,7 +222,7 @@ keyยทindexยทshape ํฌํ•จ), ๊ฐœ์ˆ˜ ์ฆ๊ฐ, ์•ˆ์ชฝ ๋‘ ํ–‰์˜ ๊ฐœ์ˆ˜๊ฐ€ 3+2 โ†” 2+
222
222
  path๊ฐ€ ๋ณต์‚ฌ๋ณธ๋งˆ๋‹คยทํ‰๊ฐ€๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ฐฐ์—ด์ธ์ง€. ๊ฒฐํ•จ ๋‹ค์„ฏ(๋ฉค๋ฒ„ ๊ฒ€์‚ฌ ๋ˆ„๋ฝ, ๋ฉค๋ฒ„ ์ˆ˜๋งŒ ๊ฒ€์‚ฌ, path ๊ณต์œ , ํ•ฉ์„ฑ ์ˆœ์„œ ๋ณ€๊ฒฝ, rise ๋ˆ„๋ฝ)์„ ์‹ฌ์–ด ๋ชจ๋‘
223
223
  ์‹คํŒจ๋ฅผ ํ™•์ธํ–ˆ๋‹ค. fixture๋งŒ์œผ๋กœ๋Š” ๋ฉค๋ฒ„ ๊ฒ€์‚ฌ ๋ˆ„๋ฝ๊ณผ ํ•ฉ์„ฑ ์ˆœ์„œ ๋ณ€๊ฒฝ์ด ํ†ต๊ณผํ•ด์„œ ๊ฒฉ์ž ์‹œํ—˜์„ ๋”ํ–ˆ๋‹ค. HEAD ๊ตฌํ˜„๋„ ๋„ค ์‹œํ—˜์„ ํ†ต๊ณผํ•œ๋‹ค.
224
224
  ์ง์ ‘ ์‹คํ–‰ํ•œ ์‹œํ—˜ 763๊ฐœ ํ†ต๊ณผ, ์ •์ƒ ์‹œํ—˜ ๋ช…๋ น์€ ๊ธฐ์กด ํƒ€์ž… ์˜ค๋ฅ˜๋กœ ์ฐจ๋‹จ(`src/render-lod.test.ts:42`, a5781eb). ์ •์ƒ `npm test`ยทbuild๊ฐ€
225
- ํ†ต๊ณผํ•ด์•ผ ์ตœ์ข… ๊ฒ€์ฆ์ด ๋๋‚œ๋‹ค.
225
+ ํ†ต๊ณผํ•ด์•ผ ์ตœ์ข… ๊ฒ€์ฆ์ด ๋๋‚œ๋‹ค. โ†’ ์ฐจ๋‹จ ํ•ด์ œ: ์•„๋ž˜ ใ€Œํƒ€์ž… ์ˆ˜์ • ๋’ค ์ •์ƒ ์‹œํ—˜ยทbuild ๊ฒ€์ฆใ€(763๊ฐœ ํ†ต๊ณผ, build ์„ฑ๊ณต).
226
226
 
227
227
  ์ธก์ •์€ ์•ž ํ›„๋ณด๋“ค๊ณผ ๊ฐ™๋‹ค(๋ณด๋“œ, ํฌ๊ธฐ๋งŒ ๊ต๋Œ€, 6 round ร— D1ยทD2ยทC, ์ˆœ์„œ ์—ฌ์„ฏ ๊ฐ€์ง€, ์›Œ๋ฐ์—… 30, ๋น„๊ณ„์ธก 150ํ”„๋ ˆ์ž„; 60๋Œ€๋Š” ํšŒ๊ท€ ํ™•์ธ์šฉ 2 round).
228
228
  things-scene `f287f5f7`, D = figure-model `a5363bd`, C = ์ด ํ›„๋ณด. D ๋ฒˆ๋“ค์€ ๋งค๊ฐœ๋ณ€์ˆ˜ ํŒŒ์‹ฑ ์ธก์ •์˜ ๊ธฐ์ค€ ๋ฒˆ๋“ค๊ณผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๊ฐ™๋‹ค.
@@ -241,7 +241,7 @@ things-scene `f287f5f7`, D = figure-model `a5363bd`, C = ์ด ํ›„๋ณด. D ๋ฒˆ๋“ค์€
241
241
  ์ž‘์—…๋Ÿ‰์€ ๊ฐ™์•˜๋‹ค: draw call 2001, ์‚ผ๊ฐํ˜• 944012, body 20000, ํ–‰ ๋ณต์‚ฌ 12000(60๋Œ€: 241, 113292, 2400, 1440).
242
242
 
243
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. ๊ฒ€์ฆํ•œ ์‹œํ—˜๊ณผ ์ธก์ • ์žฅ๋ฉด์—์„œ ๊ธฐ๋Šฅ ์ฐจ์ด๋ฅผ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ–ˆ๋‹ค(์ •์ƒ ์‹œํ—˜ ๋ช…๋ น์€ ์•„์ง ์ฐจ๋‹จ).
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. ๊ฒ€์ฆํ•œ ์‹œํ—˜๊ณผ ์ธก์ • ์žฅ๋ฉด์—์„œ ๊ธฐ๋Šฅ ์ฐจ์ด๋ฅผ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ–ˆ๋‹ค(์ •์ƒ ์‹œํ—˜ ๋ช…๋ น ๊ฒ€์ฆ์€ ์•„๋ž˜ ใ€Œํƒ€์ž… ์ˆ˜์ • ๋’ค ์ •์ƒ ์‹œํ—˜ยทbuild ๊ฒ€์ฆใ€).
245
245
  ์„ฑ๋Šฅ ํšŒ๊ท€๋Š” ๋ฏธํ™•์ •์ด๋‹ค โ€” ์ฒซ ํšŒ์ฐจ p95๊ฐ€ A/A ๋ฐ–์œผ๋กœ ๋‚˜๋น ์กŒ๊ณ , 2ํšŒ๋กœ๋Š” ๋ฐ˜๋ณต๋˜๋Š”์ง€ ๊ฐ€๋ฅผ ์ˆ˜ ์—†๋‹ค.
246
246
 
247
247
  ์›์ธ ํ™•์ธ(๋ณ„๋„ ํ• ๋‹น ํ”„๋กœํ•„, 500๋Œ€ 3 round, ์ด ์‹คํ–‰์˜ ํ”„๋ ˆ์ž„ ์‹œ๊ฐ„์€ ํŒ๋‹จ์— ์“ฐ์ง€ ์•Š๋Š”๋‹ค): ์‹ค์ œ๋กœ ์„œ๋น™๋œ ๋ฒˆ๋“ค
@@ -312,3 +312,267 @@ rig๊ฐ€ ๊ทธ๋ฆฐ ๊ฒƒ์— ๋‹ฟ์ง€ ์•Š๋Š”์ง€(`test/figure-merge.check.js`). ๊ฒฐํ•จ ๋‹ค
312
312
  ์•ฝ 0.6 ms, 60๋Œ€์—์„œ ์•ฝ 0.1 ms ๋Š˜์—ˆ๋‹ค. 60๋Œ€ ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’์€ ๋‘ ํšŒ์ฐจ ๋ชจ๋‘ A/A๋ณด๋‹ค ๋А๋ ธ๋‹ค(์„ฑ๋Šฅ ํšŒ๊ท€ ๋ฏธํ™•์ •). 500๋Œ€ ํ”„๋ ˆ์ž„
313
313
  ํšจ๊ณผ๋Š” ์ด ์‹คํ–‰์˜ A/A ํญ ์•ˆ์ด๋ผ ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚œ ์ด์œ ๋Š” ์ถ”๋ก ์ด๋‹ค: ์ตœ์ข… body๋ฅผ `{ id }`์—์„œ ์‹œ์ž‘ํ•ด ์†์„ฑ 8~9๊ฐœ๋ฅผ ์ฐจ๋ก€๋กœ
314
314
  ๋”ํ•˜๋ฉด ๊ฐ์ฒด ์•ˆ์˜ ์ž๋ฆฌ๋ฅผ ๋„˜์–ด ๋ณ„๋„ ์†์„ฑ ์ €์žฅ์†Œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ณ , ํŽผ์น˜๊ธฐ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งž๋Š” ํฌ๊ธฐ๋กœ ๋งŒ๋“ ๋‹ค โ€” ํ™•์ธํ•˜์ง€ ์•Š์•˜๋‹ค.
315
+
316
+ ### P1 ๋„ค ๋ฒˆ์งธ: `fromChanges`์˜ ์ตœ์ข… body๋ฅผ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ํ•˜๋‚˜๋กœ โ€” ๊ธฐ๋ณธ ์ฑ„ํƒ ๋ณด๋ฅ˜ (2026-10-05)
317
+
318
+ ์„ธ ๋ฒˆ์งธ ํ›„๋ณด(B)์—์„œ `fromChanges` ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚œ ์ด์œ ๋กœ ใ€Œ์†์„ฑ์„ ์ฐจ๋ก€๋กœ ๋ถ™์ด๋ฉด ๊ฐ์ฒด ๋ฐ– ์†์„ฑ ์ €์žฅ์†Œ๊ฐ€ ์ƒ๊ธด๋‹คใ€๋ฅผ ๊ฐ€์„ค๋กœ ์ ์—ˆ๋‹ค. ๋จผ์ € ์ž‘์€
319
+ ๋น„๊ต๋กœ ํ™•์ธํ–ˆ๋‹ค(node, ๊ฐ™์€ Figure, rig 500๊ฐœ, ๋‘ ํฌ๊ธฐ ๊ต๋Œ€, ์›Œ๋ฐ์—… 30ยท์ธก์ • 60ํ”„๋ ˆ์ž„, `fromChanges`๋งŒ ์‹œ๊ฐ„ ์ธก์ •, ๋ณ€ํ˜•๋งˆ๋‹ค ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค,
320
+ A B C C B A ์ˆœ์„œ ๋‘ ๋ฒˆ = ๋ณ€ํ˜•๋งˆ๋‹ค 4ํšŒ, ๋ฐ˜๋ณต ์ˆ˜๋Š” ๋ฏธ๋ฆฌ ๊ณ ์ •).
321
+
322
+ | ๋ณ€ํ˜• | `fromChanges` ms/frame ์ค‘์•™๊ฐ’ (๋ฒ”์œ„) | ์ตœ์ข… body์˜ ์†์„ฑ ์ž๋ฆฌ(V8 `%DebugPrint`) |
323
+ | --------------------------------- | ------------------------------------ | ---------------------------------------- |
324
+ | A ๊ธฐ์กด(91a5ac30, ํŽผ์น˜๊ธฐ) | 2.42 (2.30~2.58) | id๋งŒ ๊ฐ์ฒด ์•ˆ, ๋‚˜๋จธ์ง€ 8๊ฐœ๋Š” PropertyArray |
325
+ | B ์„ธ ๋ฒˆ์งธ ํ›„๋ณด(์ฐจ๋ก€๋กœ ์ถ”๊ฐ€) | 2.87 (2.67~3.56) | A์™€ ๊ฐ™์Œ |
326
+ | C ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด | 2.37 (2.33~2.43) | 9๊ฐœ ๋ชจ๋‘ ๊ฐ์ฒด ์•ˆ |
327
+
328
+ ๊ฐ€์„ค์€ ๋งž์ง€ ์•Š์•˜๋‹ค โ€” A๋„ ๊ฐ์ฒด ๋ฐ– ์ €์žฅ์†Œ๋ฅผ ์“ฐ๋ฏ€๋กœ ๊ทธ๊ฒƒ์œผ๋กœ๋Š” B๊ฐ€ A๋ณด๋‹ค ๋А๋ฆฐ ๊ฒƒ์„ ์„ค๋ช…ํ•˜์ง€ ๋ชปํ•œ๋‹ค(B๊ฐ€ ๋А๋ฆฐ ์ด์œ ๋Š” ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค). C๋Š” B๋ณด๋‹ค
329
+ ๋น ๋ฅด๊ณ  A์™€ ๋น„์Šทํ–ˆ๊ณ , AยทB๊ฐ€ body๋งˆ๋‹ค ๋งŒ๋“œ๋Š” PropertyArray๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ณ„๋„ ํ›„๋ณด๋กœ ์ „์ฒด ํ”„๋ ˆ์ž„์„ ์ธก์ •ํ–ˆ๋‹ค.
330
+
331
+ things-scene `candidate/from-changes-literal` `2b27d899`(B `3e7101e6` ์œ„, ๋ณ‘ํ•ฉํ•˜์ง€ ์•Š์Œ). ์‹ค์ œ๋กœ ๋‚˜์˜ค๋Š” ๋„ค ๋ชจ์–‘ โ€” ํ–‰ ๋ณต์‚ฌ๋ณธ(pathยทkeyยทindex)๊ณผ
332
+ ๋ฐฐ์น˜ ๋ถ€ํ’ˆ(์…‹ ๋‹ค ์—†์Œ), ๊ฐ๊ฐ segments ์žˆ์Œยท์—†์Œ โ€” ์„ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ํ•˜๋‚˜๋กœ ๋งŒ๋“ค๊ณ , ๊ทธ ๋ฐ–์˜ ์กฐํ•ฉ์€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ํ•˜๋‚˜์”ฉ ๋ถ™์ธ๋‹ค(fixture์™€ ์ธก์ •
333
+ Figure ์–ด๋””์„œ๋„ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค). ๊ฒฐํ•จ ๋„ท(ํ–‰+segments ํ•„๋“œ ์ˆœ์„œ, ๋ถ€ํ’ˆ+segments์˜ segments ๋ˆ„๋ฝ, segments ์—†๋Š” ํ–‰์˜ index ๋ˆ„๋ฝ, ๋ถ€ํ’ˆ์˜
334
+ visible ๊ณ ์ •)์„ ์‹ฌ์—ˆ์„ ๋•Œ ์…‹์งธ๊ฐ€ ์žกํžˆ์ง€ ์•Š์•˜๋‹ค โ€” segments ์—†๋Š” ํ–‰์€ `cell-tray`์—๋งŒ ์žˆ๊ณ  ๋ณ€๊ฒฝ๋ถ„ ์‹œํ—˜์— ์—†์—ˆ๋‹ค. `cell-tray`๋ฅผ ๋ณ€๊ฒฝ๋ถ„๊ณผ
335
+ ์Šค๋ƒ…์ƒท ๋น„๊ต ์‹œํ—˜์— ๋”ํ•ด ๋„ท ๋ชจ๋‘ ์‹คํŒจ๋ฅผ ํ™•์ธํ–ˆ๋‹ค(๋”ํ•œ ์‹œํ—˜์€ AยทBยทC ๋ชจ๋‘ ํ†ต๊ณผ). `npm run test:figure` 92๊ฐœ, `npm test` 2715๊ฐœ ํ†ต๊ณผ.
336
+
337
+ ์ธก์ •: D = things-scene `91a5ac30`(์„ธ ๋ฒˆ์งธ ํ›„๋ณด์™€ ๊ฐ™์€ ๋ฒˆ๋“ค, ์„œ๋น™ ๋ฒˆ๋“ค sha256 `a82cb950โ€ฆf944`๋„ ๊ฐ™๋‹ค), C = ์ด ํ›„๋ณด, figure-model ๋‘˜ ๋‹ค
338
+ `a5363bd` dist. ์•ž ํ›„๋ณด๋“ค๊ณผ ์ ˆ๋Œ€ ์‹œ๊ฐ„์„ ๋น„๊ตํ•˜์ง€ ์•Š๋Š”๋‹ค.
339
+
340
+ | 500๋Œ€ | A/A (D2โˆ’D1) round๋ณ„ | ํ›„๋ณด (Cโˆ’D1) round๋ณ„ |
341
+ | ---------------------- | -------------------------------------- | --------------------------------------- |
342
+ | ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’ ์ฐจ์ด ms | +0.44 โˆ’9.32 +5.20 โˆ’1.66 โˆ’0.22 +0.07 | +0.61 โˆ’9.57 +1.54 โˆ’1.71 +0.63 +0.67 |
343
+ | p95 ์ฐจ์ด ms | +0.56 โˆ’9.82 +4.04 โˆ’2.81 โˆ’0.47 โˆ’0.71 | โˆ’0.09 โˆ’11.97 +2.00 โˆ’6.42 +2.27 โˆ’0.54 |
344
+
345
+ | 500๋Œ€ | D1 | D2 | C |
346
+ | ----------------------------- | ------------ | ------------ | ------------ |
347
+ | ํ• ๋‹น MB/frame(6ํšŒ) | 76.96~77.28 | 76.90~77.29 | 74.80~75.46 |
348
+ | ๋ณด์œ  MB(์ธก์ • ๋’ค GC) | 42.7~43.3 | 42.7~43.3 | 43.0 |
349
+ | ๋‹จ๊ณ„ ๊ณ„์ธก `fromChanges` ms | 2.17 | 1.99 | 1.88 |
350
+ | ๋‹จ๊ณ„ ๊ณ„์ธก ์ปค๋„ / GC ms | 21.20 / 4.91 | 19.91 / 4.67 | 19.91 / 4.35 |
351
+
352
+ A/A๊ฐ€ 2ํšŒ์ฐจ โˆ’9.3 ms, 3ํšŒ์ฐจ +5.2 ms๋กœ ํฌ๊ฒŒ ๋ฒŒ์–ด์กŒ๋‹ค โ€” ์‹คํ–‰ ๊ฐ„ ๋ณ€๋™์ด ์ปธ๋‹ค๋Š” ๊ทผ๊ฑฐ์ด๊ณ  ์›์ธ์€ ํ™•์ธํ•˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ ํญ ์•ˆ์—์„œ ํ›„๋ณด์˜ ํ”„๋ ˆ์ž„
353
+ ํšจ๊ณผ๋Š” ๊ฐ€๋ฅผ ์ˆ˜ ์—†๋‹ค. ์ž‘์—…๋Ÿ‰์€ ๊ฐ™์•˜๋‹ค(draw call 2001, ์‚ผ๊ฐํ˜• 944012, ์žฅ๋ฉด body 20000, ํ–‰ ๋ณต์‚ฌ 12000; 60๋Œ€ 241, 113292, 2400, 1440).
354
+
355
+ 60๋Œ€(2 round): ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’ ์ฐจ์ด 0.00, +0.11 ms(A/A +0.02, +0.14), p95 โˆ’0.30, +0.13 ms(A/A โˆ’0.34, +0.55), ๋‹จ๊ณ„ ๊ณ„์ธก `fromChanges`
356
+ 0.20ยท0.22 โ†’ 0.28 ms, ํ• ๋‹น 10.53 โ†’ 10.23~10.30 MB/frame, GC 0.44ยท0.47 โ†’ 0.40 ms, ๋ณด์œ  ๊ฐ™์Œ(10.1).
357
+
358
+ ์›์ธ ํ™•์ธ(๋ณ„๋„ ํ• ๋‹น ํ”„๋กœํ•„, 500๋Œ€ 3 round): ์„œ๋น™ ๋ฒˆ๋“ค ์‚ฌ๋ณธ `figure-vs-js/from-changes-literal-2026-10-05/`(D sha256 `a82cb950โ€ฆf944`,
359
+ C `97744f65โ€ฆ861c`), `fromChanges`๋Š” ๋‘˜ ๋‹ค 0๋ถ€ํ„ฐ ์„ผ 97275ํ–‰ 332754์—ด, `test/browser/figure-allocation-under.mjs`๋กœ ์ง‘๊ณ„. `fromChanges`
360
+ (ํ•˜์œ„ ํ˜ธ์ถœ ํฌํ•จ) D1 7.909 ยท D2 7.892 ยท C 5.955 MiB/frame(์•ฝ 1.95 MiB, 24.6% ๊ฐ์†Œ), ์ „์ฒด 77.05 ยท 77.12 ยท 75.07(์•ฝ 2.0 MiB, 2.6%).
361
+ ๋ณ€๊ฒฝ body ์ˆ˜๋Š” ์ด ํ›„๋ณด C(`2b27d899`)์—์„œ ์ง์ ‘ ๋‹ค์‹œ ์…Œ๋‹ค(์„ธ ๋ฒˆ์งธ ํ›„๋ณด์™€ ๊ฐ™์€ ๋ณ„๋„ ๊ณ„์ธก ์Šคํฌ๋ฆฝํŠธ, ๋น„๊ณ„์ธก ๋น„๊ต์™€ ๋ถ„๋ฆฌ; rig 500๊ฐœ, 30ํ”„๋ ˆ์ž„):
362
+ ํ”„๋ ˆ์ž„๋งˆ๋‹ค changes step 500, ๋ณ€๊ฒฝ๋ถ„์ด ์•Œ๋ฆฐ body 20000, ์ƒˆ๋กœ ๋งŒ๋“  ์ตœ์ข… body 20000, structure 0 โ€” ์„ธ ๋ฒˆ์งธ ํ›„๋ณด์˜ AยทB ๊ฐ’๊ณผ ๊ฐ™๋‹ค.
363
+
364
+ ๊ด€์ฐฐ ์ •๋ฆฌ: ํ• ๋‹น์€ `fromChanges`์—์„œ ์•ฝ 2 MiB/frame ์ค„์—ˆ๋‹ค. ๋‹จ๊ณ„ ๊ณ„์ธก์˜ `fromChanges` ์‹œ๊ฐ„์€ 500๋Œ€์—์„œ A์˜ ๋‘ ์‹คํ–‰
365
+ (2.17ยท1.99)๋ณด๋‹ค ๋‚ฎ์•˜๊ณ , 60๋Œ€์—์„œ๋Š” 0.20ยท0.22 โ†’ 0.28 ms๋กœ ๋†’์•˜๋‹ค. 500๋Œ€ GC ์‹œ๊ฐ„์€ ๋‘ A๋ณด๋‹ค ๋‚ฎ์•˜๋‹ค(4.91ยท4.67 โ†’ 4.35 ms) โ€” ํ• ๋‹น ๊ฐ์†Œ์—์„œ
366
+ GC ๊ฐ์†Œ๋ฅผ ๋Œ์–ด๋‚ด์ง€ ์•Š๊ณ  ์ธก์ •๊ฐ’์œผ๋กœ๋งŒ ์ ๋Š”๋‹ค. ์ „์ฒด ํ”„๋ ˆ์ž„ ๊ฐœ์„ ์€ ์ด ์‹คํ–‰์˜ A/A ํญ ๋•Œ๋ฌธ์— ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. 60๋Œ€ ํ”„๋ ˆ์ž„์€ A/A์™€ ๊ตฌ๋ถ„๋˜์ง€ ์•Š์•˜๋‹ค.
367
+
368
+ ํŒ์ •: ๊ธฐ๋ณธ ์ฑ„ํƒ ๋ณด๋ฅ˜, ํ›„๋ณด์™€ ๊ธฐ๋ก์„ ๋ณด์กดํ•œ๋‹ค. ํ• ๋‹น 2.6% ๊ฐ์†Œ๋Š” ํ™•์ธํ–ˆ์ง€๋งŒ, ์ „์ฒด ํ”„๋ ˆ์ž„ ๊ฐœ์„ ์€ ๊ตฌ๋ถ„๋˜์ง€ ์•Š์•˜๊ณ  60๋Œ€์˜ `fromChanges`
369
+ ์‹œ๊ฐ„์€ ๋Š˜์—ˆ๋‹ค. ๋‹ค์Œ์€ ๋ฏธ์„ธ ์ตœ์ ํ™”๋ณด๋‹ค ์ธก์ •์˜ ์‹คํ–‰ ๊ฐ„ ๋ณ€๋™ ์›์ธ์„ ๋จผ์ € ํ™•์ธํ•œ๋‹ค(A/A โˆ’9.32~+5.20 ms).
370
+
371
+ ### ํƒ€์ž… ์ˆ˜์ • ๋’ค ์ •์ƒ ์‹œํ—˜ยทbuild ๊ฒ€์ฆ (2026-10-05)
372
+
373
+ `src/render-lod.test.ts:42`์˜ ํƒ€์ž… ์˜ค๋ฅ˜๋Š” ๋‹ค๋ฅธ ์„ธ์…˜์ด main `d6bdd66`(์‚ฌ์šฉ์ž ์ง€์‹œ)์œผ๋กœ ๊ณ ์ณค๋‹ค. ๊ณ ์นœ diff๋Š” ์‹œํ—˜ ์ชฝ ํ•œ ์ค„์ด๋‹ค:
374
+
375
+ ```diff
376
+ - assert.equal(figureRenderSegmentsOf(unsupported, 'coarse'), 32)
377
+ + assert.equal(figureRenderSegmentsOf(unsupported as never, 'coarse'), 32)
378
+ ```
379
+
380
+ ํ›„๋ณด ๋ธŒ๋žœ์น˜๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ , ๋”ฐ๋กœ ๋งŒ๋“  ๋ถ„๋ฆฌ worktree์—์„œ ํ›„๋ณด์˜ ๊ธฐ์ค€ ์ปค๋ฐ‹์— `d6bdd66`๋งŒ ์–น์–ด(`git cherry-pick -n`, ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์Œ) ์ •์ƒ
381
+ `npm test`(ํƒ€์ž… ๊ฒ€์‚ฌ + ์‹œํ—˜)์™€ `npm run build`๋ฅผ ๋Œ๋ ธ๋‹ค. main ์ „์ฒด๋กœ rebaseํ•˜์ง€ ์•Š์•˜๋‹ค โ€” ์ธก์ •ํ•œ ๋Œ€์ƒ๊ณผ ๊ฐ™๊ฒŒ ๋‘๊ธฐ ์œ„ํ•ด์„œ๋‹ค.
382
+
383
+ | ๋Œ€์ƒ | ๊ธฐ์ค€ ์ปค๋ฐ‹ | ์–น์€ ๊ฒƒ | `npm test` | build |
384
+ | ---------------------------------------- | --------- | ------------- | ---------------------- | ----- |
385
+ | figure-model main | `5d8db89` | (d6bdd66 ํฌํ•จ) | 759 ํ†ต๊ณผ, 0 ์‹คํŒจ | ์„ฑ๊ณต |
386
+ | `candidate/repeat-run` (P2 ์ฒซ ํ›„๋ณด) | `07625f8` | `d6bdd66` | 763 ํ†ต๊ณผ, 0 ์‹คํŒจ | ์„ฑ๊ณต |
387
+ | `candidate/extrude-param-cache` (P1 ๋‘˜์งธ) | `fc9a7b3` | `d6bdd66` | 762 ํ†ต๊ณผ, 0 ์‹คํŒจ | ์„ฑ๊ณต |
388
+
389
+ ๋‘ ํ›„๋ณด์˜ ใ€Œ์ •์ƒ ์‹œํ—˜ ๋ช…๋ น์€ ํƒ€์ž… ์˜ค๋ฅ˜๋กœ ์ฐจ๋‹จใ€ ์ƒํƒœ๋Š” ์ด ๊ฒ€์ฆ์œผ๋กœ ํ•ด์ œํ•œ๋‹ค. ์„ฑ๋Šฅ ํŒ์ •(๋‘˜ ๋‹ค ๊ธฐ๋ณธ ์ฑ„ํƒ ๋ณด๋ฅ˜)์€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.
390
+ things-scene ํ›„๋ณด(`candidate/from-changes-dress`, `candidate/from-changes-literal`)๋Š” ์ด ์˜ค๋ฅ˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ `npm test`(2715)์™€
391
+ `npm run test:figure`(92)๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค. ๋ฐœํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค.
392
+
393
+ ### ์ธก์ •์˜ ์‹คํ–‰ ๊ฐ„ ๋ณ€๋™ ์ง„๋‹จ (2026-10-05, ํ›„๋ณด ํŒ์ •๊ณผ ๋ณ„๊ฐœ)
394
+
395
+ ํ›„๋ณด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ์ง„ํ–‰ํ–ˆ๋‹ค. ๋ณด๋ฅ˜ํ•œ ํ›„๋ณด๋“ค์˜ ์„ฑ๋Šฅ ํŒ์ •์„ ๋Œ€์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
396
+
397
+ 1. ๊ธฐ์กด ๊ฒฐ๊ณผ ๋‹ค์‹œ ๋ณด๊ธฐ(์ƒˆ ์ธก์ • ์—†์Œ). ์˜ค๋Š˜ 500๋Œ€ 6 round ๋‹ค์„ฏ ๋ฒˆ์˜ `gap-*.json`์„ ์‹คํ–‰ ์ˆœ์„œ(ORDERS)๋Œ€๋กœ ๋Š˜์–ด๋†“์•˜๋‹ค. ์‹คํ–‰ 18ํšŒ์˜ ํ”„๋ ˆ์ž„
398
+ ์ค‘์•™๊ฐ’ ๋ฒ”์œ„๋Š” ํ˜•์ƒ ํ‚ค 49.3~51.6, ๋งค๊ฐœ๋ณ€์ˆ˜ ํŒŒ์‹ฑ 48.8~52.0, `repeat@1` 48.8~53.9(13~17๋ฒˆ์งธ ์‹คํ–‰ ๊ตฌ๊ฐ„), `fromChanges` B 49.5~56.8
399
+ (11~16๋ฒˆ์งธ), ๋ฆฌํ„ฐ๋Ÿด C 49.8~60.3 ms(6~10๋ฒˆ์งธ)์˜€๋‹ค. ์„œ์„œํžˆ ๋ณ€ํ•˜๋Š” ํ๋ฆ„์€ ์—†์—ˆ๊ณ , ์—ฐ์†๋œ ๋ช‡ ๋ฒˆ์˜ ์‹คํ–‰์ด ํ•จ๊ป˜ ๋А๋ ค์กŒ์œผ๋ฉฐ ๊ทธ๋•Œ ๋ˆ ํŒ”์ด
400
+ ๋ฌด์—‡์ด๋“  ๋А๋ ธ๋‹ค. round๋ณ„ A/A ์ฐจ์ด๊ฐ€ ํฌ๊ฒŒ ๋‚˜์˜จ ๊ฒƒ์€ ์ด ๊ตฌ๊ฐ„์ด ์–ด๋А round์— ๊ฑธ๋ ธ๋Š”์ง€์™€ ๋งž๋ฌผ๋ฆฐ๋‹ค. ๊ทธ ์‹œ๊ฐ์˜ ๋ถ€ํ•˜ยท์—ด ์ƒํƒœ๋Š” ๊ธฐ๋ก๋˜์ง€ ์•Š์•˜๋‹ค.
401
+
402
+ 2. ๊ณ ์ • ์ธก์ •. things-scene `82b84ead`์˜ `TRACE=1`(์‹คํ–‰ ์•ž๋’ค์—์„œ๋งŒ ๊ธฐ๋กํ•˜๋ฉฐ ์ธก์ • ํ”„๋ ˆ์ž„ ์•ˆ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋”ํ•˜์ง€ ์•Š๋Š”๋‹ค). ์„ธ ํŒ” ๋ชจ๋‘ ๊ฐ™์€ build
403
+ (things-scene `91a5ac30`, figure-model `a5363bd`), ๋ณด๋“œ 500๋Œ€, 6 round, ์›Œ๋ฐ์—… 30, ์ธก์ • 150, ํ”„๋กœํ•„ ์—†์Œ. ์›์ž๋ฃŒ
404
+ `figure-vs-js/gap-1791206726787.json`. ์›Œ๋ฐ์—…๊ณผ ์ธก์ • ๊ตฌ๊ฐ„์€ ๊ฐ™์€ `frame()`(ํฌ๊ธฐ ๋ณ€๊ฒฝ + ๊ทธ๋ฆฌ๊ธฐ + 1ํ”ฝ์…€ ์ฝ๊ธฐ๋ฅผ `performance.now()`๋กœ)๊ณผ
405
+ ํ”„๋ ˆ์ž„ ์‚ฌ์ด `requestAnimationFrame` ํ•œ ๋ฒˆ์œผ๋กœ ์žฐ๋‹ค โ€” ํƒ€์ด๋ฐ ๋ฐฉ์‹์ด ๊ฐ™์œผ๋ฏ€๋กœ ๋‘ ๊ตฌ๊ฐ„์˜ ์ถ”์ด๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ์›Œ๋ฐ์—… ์ดˆ๋ฐ˜์—๋Š”
406
+ ์ดˆ๊ธฐ ์ปดํŒŒ์ผยท์บ์‹œ ์˜ํ–ฅ์ด ๋“ค์–ด ์žˆ๋‹ค.
407
+
408
+ | ํ•ญ๋ชฉ | ๊ฒฐ๊ณผ |
409
+ | ---------------------------------------- | -------------------------------------------------------------------------------------------------- |
410
+ | A/A (D2โˆ’D1) round๋ณ„ ์ค‘์•™๊ฐ’ / p95 ms | +1.31 +1.25 โˆ’0.46 +0.08 โˆ’0.20 +0.50 / +2.84 โˆ’0.17 โˆ’2.95 +0.22 +0.14 +2.44 |
411
+ | ๊ฐ™์€ build (Cโˆ’D1) round๋ณ„ ์ค‘์•™๊ฐ’ / p95 ms | +0.02 +0.06 โˆ’0.10 โˆ’0.10 โˆ’1.06 +0.06 / +1.00 โˆ’0.71 โˆ’2.60 +0.74 โˆ’0.04 โˆ’0.41 |
412
+ | ์‹คํ–‰ 18ํšŒ ์ค‘์•™๊ฐ’ | 1~3๋ฒˆ์งธ(์ฒซ round) 53.5ยท54.8ยท53.5, 4~18๋ฒˆ์งธ 49.4~51.7 ms |
413
+ | 1๋ถ„ ๋ถ€ํ•˜ ํ‰๊ท (์‹คํ–‰ ์ง์ „) | 1~3๋ฒˆ์งธ 5.8ยท5.2ยท5.7, 4~18๋ฒˆ์งธ 2.9~4.5 |
414
+ | ์—ดยท์„ฑ๋Šฅ ๊ฒฝ๊ณ (`pmset -g therm`) | 18ํšŒ ๋ชจ๋‘ ๊ธฐ๋ก ์—†์Œ |
415
+
416
+ ์ด๋ฒˆ ์‹คํ–‰์—์„œ๋Š” ์•ž์˜ ์„ธ ์ธก์ • ๊ฐ™์€ ์—ฐ์† ๋А๋ฆฐ ๊ตฌ๊ฐ„์ด ๋‚˜์˜ค์ง€ ์•Š์•˜๊ณ , A/A ์ค‘์•™๊ฐ’ ์ฐจ์ด๋Š” โˆ’0.46~+1.31 ms์˜€๋‹ค(์•ž์˜ ์ธก์ • โˆ’9.32~+6.77).
417
+
418
+ - ๋ถ€ํ•˜์™€์˜ ์ƒ๊ด€๊ด€๊ณ„ ํ›„๋ณด: ์ฒ˜์Œ ์„ธ ์‹คํ–‰์ด ๋А๋ ธ๊ณ  ๊ทธ๋•Œ 1๋ถ„ ๋ถ€ํ•˜ ํ‰๊ท ์ด ๊ฐ€์žฅ ๋†’์•˜๋‹ค. ๊ทธ ์‹œ๊ฐ CPU ์ƒ์œ„์— ๋‹ค๋ฅธ ์„ธ์…˜์˜ `npm run build`,
419
+ CPU 169%์ธ `node`, Spotlight ์ƒ‰์ธ(`mds_stores`), `syspolicyd`๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋‹ค๋งŒ ์ฒซ round๋ผ๋Š” ์ˆœ์„œ ํšจ๊ณผ์™€ ๊ฒน์ณ ์žˆ์–ด ๋‘˜์„ ๊ฐ€๋ฅผ ์ˆ˜ ์—†๋‹ค.
420
+ ์‹คํ–‰ ์ค‘๊ฐ„์—๋„ ๋‹ค๋ฅธ ์•ฑ(ChatGPT Codex 140%, `node` 231% ๋“ฑ)์ด CPU ์ƒ์œ„์— ์žˆ์—ˆ์ง€๋งŒ ๊ทธ ์‹คํ–‰๋“ค์€ ๋А๋ฆฌ์ง€ ์•Š์•˜๋‹ค. ์ƒ๊ด€๊ด€๊ณ„๋กœ๋งŒ ์ ๋Š”๋‹ค.
421
+ - ์ •๋ฆฌ ํ™•์ธ: 18ํšŒ ๋ชจ๋‘ ์ •๋ฆฌ ๋’ค WebGL context๊ฐ€ ํ•ด์ œ๋˜์—ˆ๊ณ (`isContextLost` true), renderer ๊ธฐ๋ก์˜ geometry๋Š” 5 โ†’ 0์ด์—ˆ๋‹ค(texture 4 โ†’ 2,
422
+ program 3 โ†’ 3์€ ํ•ด์ œ ๋’ค์—๋„ renderer ๊ธฐ๋ก์— ๋‚จ์€ ์ˆ˜). ์—ด๋ฆฐ target ์ˆ˜๋Š” ๋งค๋ฒˆ 3 โ†’ 3์œผ๋กœ ๋Œ์•„์™”๊ณ , ํŽ˜์ด์ง€ ์‹œ์ž‘ ์‹œ JS heap์€ 18ํšŒ ๋ชจ๋‘
423
+ 7.5 MB๋กœ ๊ฐ™์•˜๋‹ค. ์ด๊ฒƒ์€ ํŽ˜์ด์ง€ ๋‹จ์œ„ ์ •๋ฆฌ ํ™•์ธ์ด๋ฉฐ ๋ธŒ๋ผ์šฐ์ € ์ „์ฒด(GPU ํ”„๋กœ์„ธ์Šค ๋“ฑ)์— ์ž์›์ด ๋‚จ์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ๋‹ค. GPU ํ”„๋กœ์„ธ์Šค์˜
424
+ ๋ˆ„์  CPU ์‹œ๊ฐ„์€ ์‹คํ–‰๋งˆ๋‹ค ์•ฝ 1.7 s์”ฉ ๋Š˜์—ˆ๋Š”๋ฐ, ๋ˆ„์ ๊ฐ’์ด๋ผ ์ž”๋ฅ˜ ์—ฌ๋ถ€๋ฅผ ๋ณด์—ฌ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.
425
+ - ์›Œ๋ฐ์—… 30ํ”„๋ ˆ์ž„ ๋’ค์˜ ์•ˆ์ •ํ™”: ์ธก์ • 150ํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ 10ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’์ด ๋งˆ์ง€๋ง‰ 10ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’๋ณด๋‹ค ํฐ ์‹คํ–‰์ด 18ํšŒ ์ค‘ 15ํšŒ์˜€๋‹ค.
426
+ ์ฐจ์ด๋Š” +0.1~+7.6 ms(์ค‘์•™๊ฐ’ ์•ฝ +2.5 ms), ๋ฐ˜๋Œ€์ธ ์‹คํ–‰์€ ์…‹(โˆ’0.9, โˆ’2.1, โˆ’8.0 ms)์ด์—ˆ๋‹ค. ๋ณด์กฐ ์ง€ํ‘œ์ธ ๊ธฐ์šธ๊ธฐ(150ํ”„๋ ˆ์ž„ ๋™์•ˆ ๋ณ€ํ™”๋Ÿ‰)๋Š”
427
+ ์ค‘์•™๊ฐ’ ์•ฝ โˆ’1.4 ms์˜€๊ณ  +5.8 ms์ธ ์‹คํ–‰ ํ•˜๋‚˜๊ฐ€ ์žˆ์—ˆ๋‹ค(GC ๊ฐ™์€ ์ˆœ๊ฐ„์ ์ธ ํА์— ๋ฏผ๊ฐํ•˜๋‹ค). ์›Œ๋ฐ์—… 30ํ”„๋ ˆ์ž„ ๋’ค์—๋„ ๋Œ€๋ถ€๋ถ„์˜ ์‹คํ–‰์—์„œ ์‹œ๊ฐ„์ด
428
+ ๊ณ„์† ๋‚ฎ์•„์ง€๊ณ  ์žˆ์—ˆ๋‹ค โ€” ์ธก์ • ๊ตฌ๊ฐ„์ด ์•„์ง ์•ˆ์ • ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋‹ค.
429
+
430
+ ๊ฒฐ๋ก : ์•ž์˜ ์ธก์ •๋“ค์—์„œ A/A๊ฐ€ ํฌ๊ฒŒ ๋ฒŒ์–ด์ง„ ์›์ธ์€ ๋ฏธํ™•์ •์ด๋‹ค. ํ™•์ธํ•œ ๊ฒƒ์€ (1) ์—ฐ์†๋œ ๋А๋ฆฐ ์‹คํ–‰ ๊ตฌ๊ฐ„์ด ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ, (2) ๋ถ€ํ•˜ ํ‰๊ท ์ด ๋†’์•˜๋˜
431
+ ์‹œ๊ฐ๊ณผ ๋А๋ฆฐ ์‹คํ–‰์ด ๊ฒน์นœ ์‚ฌ๋ก€๊ฐ€ ํ•œ ๋ฒˆ ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ(์ƒ๊ด€๊ด€๊ณ„), (3) ์›Œ๋ฐ์—… 30ํ”„๋ ˆ์ž„ ๋’ค์—๋„ ์ธก์ • ๊ตฌ๊ฐ„ ์•ˆ์—์„œ ์‹œ๊ฐ„์ด ๋Œ€๊ฐœ 2~3 ms ๋” ๋‚ฎ์•„์ง„๋‹ค๋Š”
432
+ ๊ฒƒ์ด๋‹ค. (3)์€ ํŒ์ • ์ „ ์ธก์ • ์กฐ๊ฑด(์›Œ๋ฐ์—… ๊ธธ์ด)์„ ๋‹ค์‹œ ์ •ํ•  ๊ทผ๊ฑฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค โ€” ๋ฐ”๊พธ๊ธฐ ์ „์— ์‚ฌ์šฉ์ž์™€ ์ •ํ•œ๋‹ค.
433
+
434
+ ### ์ธก์ • ์กฐ๊ฑด ๊ฒ€์ฆ: ์›Œ๋ฐ์—… 300 ยท ์ธก์ • 300 (2026-10-05, ์ธก์ • ์ „์— ๊ณ ์ •)
435
+
436
+ ํ›„๋ณด ๋น„๊ต ์—†์ด ๊ฐ™์€ build๋กœ ์กฐ๊ฑด๋งŒ ๊ฒ€์ฆํ•œ๋‹ค. ์„ธ ํŒ” ๋ชจ๋‘ things-scene `91a5ac30` ยท figure-model `a5363bd`, ๋ณด๋“œ 500๋Œ€, ๊ธฐ์กด ORDERS 6 round(์‹คํ–‰
437
+ 18ํšŒ), ์›Œ๋ฐ์—… 300, ์ธก์ • 300, `TRACE=1`, ํ”„๋กœํ•„ ์—†์Œ. ์•ˆ์ •ํ™”๋Š” ์‹คํ–‰๋งˆ๋‹ค ์ธก์ • ํ”„๋ ˆ์ž„ 1~100, 101~200, 201~300์˜ ์ค‘์•™๊ฐ’์œผ๋กœ ๋ณธ๋‹ค.
438
+ ์•ˆ์ •์œผ๋กœ ๋ณด๋Š” ๊ธฐ์ค€(์ธก์ • ์ „์— ์ •ํ•จ): ์‹คํ–‰ 18ํšŒ์˜ (1~100 ์ค‘์•™๊ฐ’ โˆ’ 201~300 ์ค‘์•™๊ฐ’)์˜ ์ค‘์•™๊ฐ’์ด ยฑ0.5 ms ์•ˆ์ด๊ณ , ์–‘์ˆ˜์ธ ์‹คํ–‰์ด 18ํšŒ ์ค‘ 12ํšŒ ์ดํ•˜.
439
+ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ์›Œ๋ฐ์—…์„ ๋” ๋Š˜๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ๋ถ€ํ•˜ ํ‰๊ท ์œผ๋กœ ์‹คํ–‰์„ ๊ณ ๋ฅด๊ฑฐ๋‚˜ ๋นผ์ง€ ์•Š๋Š”๋‹ค. ์ธก์ • ๋™์•ˆ ๋‹ค๋ฅธ ์„ธ์…˜(ํ—ˆ๋“œ๋ ›์ผ ๋‹ด๋‹น, Operato-board
440
+ figure-model ์šด์˜, Operato-twin ํŽ˜์ด์ง€ UI/UX ๊ฐœ์„ )์— ์ƒˆ buildยทtestยท๋ถ„์„ ์ž‘์—…์„ ๋ฏธ๋ค„ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ๋‹ค. Spotlight ๋“ฑ ๋‚˜๋จธ์ง€ ๋ถ€ํ•˜๋Š” ๊ธฐ๋กํ•œ๋‹ค.
441
+ ์•ˆ์ •๋˜๋ฉด ๋ฆฌํ„ฐ๋Ÿด ํ›„๋ณด๋ถ€ํ„ฐ ๊ฐ™์€ ์กฐ๊ฑด์œผ๋กœ ๋‹ค์‹œ ๋น„๊ตํ•˜๊ณ , ์•ˆ์ •๋˜์ง€ ์•Š์œผ๋ฉด ์ž‘์€ ํ›„๋ณด์˜ ํŒ์ •์„ ๊ณ„์† ๋ณด๋ฅ˜ํ•˜๊ณ  ์ธก์ • ์›์ธ์„ ๋” ํ™•์ธํ•œ๋‹ค.
442
+
443
+ ๊ฒฐ๊ณผ(์›์ž๋ฃŒ `figure-vs-js/gap-1791207788161.json`, ์‹คํ–‰ 18ํšŒ 13:28:41Z~13:42:16Z):
444
+
445
+ - ์‹คํ–‰ ์•ˆ ์•ˆ์ •ํ™” โ€” ๋ฏธ๋ฆฌ ์ •ํ•œ ๊ธฐ์ค€ ์ถฉ์กฑ. (1~100 ์ค‘์•™๊ฐ’ โˆ’ 201~300 ์ค‘์•™๊ฐ’)์˜ ์ค‘์•™๊ฐ’ +0.13 ms(๊ธฐ์ค€ ยฑ0.5 ์•ˆ), ์–‘์ˆ˜ 10ํšŒ(๊ธฐ์ค€ 12ํšŒ ์ดํ•˜),
446
+ ๋ฒ”์œ„ โˆ’3.8~+7.0 ms. ์›Œ๋ฐ์—… 300ํ”„๋ ˆ์ž„ ๋’ค์˜ ์ธก์ • ๊ตฌ๊ฐ„์—์„œ๋Š” ์•ž์„  30ํ”„๋ ˆ์ž„ ์กฐ๊ฑด์—์„œ ๋ณธ ใ€Œ๊ณ„์† ๋‚ฎ์•„์ง€๋Š”ใ€ ์ถ”์„ธ๊ฐ€ ๋ณด์ด์ง€ ์•Š์•˜๋‹ค.
447
+ - ์‹คํ–‰ ์‚ฌ์ด ๋ณ€๋™ โ€” ๋‚จ์•˜๋‹ค. ์‹คํ–‰ ์ค‘์•™๊ฐ’์€ 1๋ฒˆ์งธ 57.6, 2~13๋ฒˆ์งธ 48.9~50.5, 14ยท17ยท18๋ฒˆ์งธ 53.7ยท54.6ยท53.1, 15๋ฒˆ์งธ 50.7 ms. A/A(D2โˆ’D1)
448
+ round๋ณ„ ์ค‘์•™๊ฐ’ โˆ’7.08 โˆ’0.89 +0.63 โˆ’1.02 +2.95 โˆ’5.30, p95 โˆ’10.28 โˆ’3.41 +0.63 โˆ’6.30 +2.83 โˆ’5.51. ๊ฐ™์€ build(Cโˆ’D1) ์ค‘์•™๊ฐ’ โˆ’8.23 โˆ’1.08
449
+ +0.71 โˆ’0.67 โˆ’1.60 โˆ’1.54. ๋А๋ฆฐ ์‹คํ–‰์ด ๋‚€ round(1ยท5ยท6)์—์„œ ์ฐจ์ด๊ฐ€ ํฌ๋‹ค. ๋А๋ฆฐ ์‹คํ–‰ ์…‹(14ยท17ยท18)์€ ๊ทธ ์•ˆ์—์„œ ์‹œ๊ฐ„์ด ์˜ค๋ฅด๊ฑฐ๋‚˜(14ยท17:
450
+ ๊ฐ€์šด๋ฐยท๋งˆ์ง€๋ง‰ ๊ตฌ๊ฐ„์ด ๋†’๋‹ค) ์ฒ˜์Œ์ด ๋†’์•˜๋‹ค(18) โ€” ์‹คํ–‰ ๋„์ค‘์˜ ๋ณ€ํ™”๋‹ค.
451
+ - ๋‹ค๋ฅธ ์ž‘์—…๊ณผ ์‹œ๊ฐ(์ƒ๊ด€๊ด€๊ณ„ ํ›„๋ณด, ์›์ธ ํ™•์ • ์•„๋‹˜): 1๋ฒˆ์งธ ์‹คํ–‰(13:28:41Z) ์ง์ „ 1๋ถ„ ๋ถ€ํ•˜ ํ‰๊ท  25.6, CPU ์ƒ์œ„๊ฐ€ `node` ์…‹. ๊ฐ™์€ ๋ฌด๋ ต
452
+ Operato-twin UX ์„ธ์…˜์˜ ํŒŒ์ผ ์ €์žฅ์œผ๋กœ :4000 webpack์ด ํ•œ ๋ฒˆ ๋‹ค์‹œ ๋ฌถ์—ˆ์„ ์ˆ˜ ์žˆ๋‹ค(13:28:39Z ๋ฌด๋ ต, ๊ทธ ์„ธ์…˜์˜ ์•Œ๋ฆผ). ํ—ˆ๋“œ๋ ›์ผ ๋‹ด๋‹น ์„ธ์…˜์˜
453
+ tf ๋ฐœํ–‰์€ 13:36:04Z ์‘๋‹ต ์‹œ๊ฐ์— ใ€Œ๋ฐฉ๊ธˆ ๋๋‚ฌ๋‹คใ€์˜€๊ณ  ์‹œ์ž‘ ์‹œ๊ฐ์„ ๋ชฐ๋ผ ์–ด๋А ์‹คํ–‰๊ณผ ๊ฒน์ณค๋Š”์ง€๋Š” ๋ฏธํ™•์ •์ด๋‹ค. Operato-twin UX ์„ธ์…˜์€ ์‚ฌ์šฉ์ž
454
+ ์ง€์‹œ๋กœ 22:38(13:38Z, ๋ถ„ ๋‹จ์œ„; ๊ทธ ์•Œ๋ฆผ์˜ ๋„์ฐฉ 13:38:09Z)๋ถ€ํ„ฐ plant `npm test`, twin client tsc, :3000 twin ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ธฐ๋™์„ ๋‹ค์‹œ
455
+ ์‹œ์ž‘ํ–ˆ๋‹ค โ€” 12๋ฒˆ์งธ ์‹คํ–‰(13:37:28Z~13:38:15Z)์€ ์‹คํ–‰ ๋„์ค‘์— ์ด ์ž‘์—…์ด ์‹œ์ž‘๋˜์–ด ๊ฒน์ณค๊ณ , 13~18๋ฒˆ์งธ(13:38:15Z ์ดํ›„ ์‹œ์ž‘)๋Š” ์‹œ์ž‘ ์ „๋ถ€ํ„ฐ
456
+ ๊ฒน์ณค๋‹ค. ๋А๋ฆฐ ์‹คํ–‰ 14ยท17ยท18์€ ๋ชจ๋‘ 13:38Z ์ดํ›„๋‹ค(15ยท16๋ฒˆ์งธ๋Š” ๋А๋ฆฌ์ง€ ์•Š์•˜๋‹ค). ๋ถ€ํ•˜ ํ‰๊ท ์€ 1๋ฒˆ์งธ๋ฅผ ๋นผ๋ฉด 3.9~7.8๋กœ ๋А๋ฆฐ ์‹คํ–‰๊ณผ ์ผ๊ด€๋˜๊ฒŒ
457
+ ๋Œ€์‘ํ•˜์ง€ ์•Š์•˜๋‹ค. ์—ดยท์„ฑ๋Šฅ ๊ฒฝ๊ณ ๋Š” 18ํšŒ ๋ชจ๋‘ ์—†์—ˆ๋‹ค. ์‹คํ–‰์€ ํ•˜๋‚˜๋„ ๋นผ์ง€ ์•Š์•˜๋‹ค.
458
+ - ์ •๋ฆฌ ํ™•์ธ(ํŽ˜์ด์ง€ ๋‹จ์œ„): 18ํšŒ ๋ชจ๋‘ context ํ•ด์ œ, ์—ด๋ฆฐ target 3 โ†’ 3, ํŽ˜์ด์ง€ ์‹œ์ž‘ JS heap 7.5 MB.
459
+
460
+ ํŒ๋‹จ: ์›Œ๋ฐ์—… 300 ยท ์ธก์ • 300์œผ๋กœ ์‹คํ–‰ ์•ˆ์˜ ์•ˆ์ •ํ™”๋Š” 18ํšŒ๋ฅผ ๋ชจ์•„ ๋ณธ ๊ธฐ์ค€์„ ์ถฉ์กฑํ–ˆ๋‹ค โ€” ๋ชจ๋“  ์‹คํ–‰์ด ์•ˆ์ •์ ์ด์—ˆ๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ๋‹ค(14ยท15ยท17ยท18๋ฒˆ์งธ๋Š”
461
+ ์‹คํ–‰ ์•ˆ์—์„œ ๊ตฌ๊ฐ„ ์ค‘์•™๊ฐ’์ด 2~7 ms ์›€์ง์˜€๋‹ค). ์‹คํ–‰ ์‚ฌ์ด์˜ ๋ณ€๋™์€ ๋‹ค๋ฅธ ์ž‘์—…์ด ๋Œ๋˜ ์‹œ๊ฐ์˜ ์‹คํ–‰์—์„œ ํฌ๊ฒŒ ๋‚จ์•„,
462
+ ๊ฐ™์€ build์˜ A/A๊ฐ€ round์— ๋”ฐ๋ผ ยฑ5~8 ms ๋ฒŒ์–ด์กŒ๋‹ค. ์›์ธ์€ ๋ฏธํ™•์ •์ด๋‹ค(๋‹ค๋ฅธ ์ž‘์—…๊ณผ ์‹œ๊ฐ์ด ๊ฒน์นœ ๊ฒƒ์€ ์ƒ๊ด€๊ด€๊ณ„).
463
+
464
+ ๋‹ค์Œ(์‚ฌ์šฉ์ž ๊ฒฐ์ •): ๋‹ค๋ฅธ ์„ธ์…˜์˜ ์‚ฌ์šฉ์ž ์ง€์‹œ ์ž‘์—…์€ ๋ฉˆ์ถ”๊ฒŒ ํ•˜์ง€ ์•Š๊ณ , ๊ทธ ์ž‘์—…์ด ๋๋‚œ ์กฐ์šฉํ•œ ์‹œ๊ฐ„๋Œ€์— ๋ฆฌํ„ฐ๋Ÿด ํ›„๋ณด๋ฅผ ๊ฐ™์€ ์กฐ๊ฑด(์›Œ๋ฐ์—… 300 ยท
465
+ ์ธก์ • 300 ยท 18ํšŒ, D1ยทD2 A/A ๋Œ€์กฐ)์œผ๋กœ ๋‹ค์‹œ ๋น„๊ตํ•œ๋‹ค. ์‹คํ–‰ ์ œ์™ธ๋‚˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ ํšŒ์ฐจ ์ถ”๊ฐ€ ์—†์ด ํŒ๋‹จํ•˜๊ณ , ๋‹ค์‹œ ๋ณ€๋™์— ๋ฌปํžˆ๋ฉด ํ›„๋ณด๋Š” ๋ณด๋ฅ˜๋กœ
466
+ ๋งˆ๋ฌด๋ฆฌํ•œ๋‹ค.
467
+
468
+ ### ๋ฆฌํ„ฐ๋Ÿด ํ›„๋ณด ์žฌ๋น„๊ต: ์›Œ๋ฐ์—… 300 ยท ์ธก์ • 300 ยท 18ํšŒ โ€” ๋ณด๋ฅ˜๋กœ ๋งˆ๋ฌด๋ฆฌ (2026-10-05)
469
+
470
+ D = things-scene `91a5ac30`, C = `candidate/from-changes-literal` `2b27d899`, figure-model ๋‘˜ ๋‹ค `a5363bd` dist, ๋ณด๋“œ 500๋Œ€, ๊ธฐ์กด ORDERS 6 round,
471
+ ์›Œ๋ฐ์—… 300, ์ธก์ • 300, `TRACE=1`, ํ”„๋กœํ•„ ์—†์Œ. ์‹คํ–‰ 18ํšŒ 13:47:49Z~14:02:20Z, ์ œ์™ธ ์—†์Œ. ์›์ž๋ฃŒ `figure-vs-js/gap-1791208940162.json`.
472
+
473
+ ์กฐ๊ฑด ๊ธฐ๋ก: buildยทtest๋Š” ์–ต์ œํ–ˆ์ง€๋งŒ ํŒŒ์ผ ์ €์žฅ์— ๋”ฐ๋ฅธ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์žฌ๋นŒ๋“œ๋Š” ๋‚จ์€ ์ƒํƒœ๋‹ค. ํ—ˆ๋“œ๋ ›์ผ ๋‹ด๋‹น์€ 13:46:42Z๋ถ€ํ„ฐ, Operato-twin UX๋Š”
474
+ 13:47:27Z๋ถ€ํ„ฐ 30๋ถ„ ๋™์•ˆ ์ƒˆ buildยทtestยทtscยท์„œ๋ฒ„ ๊ธฐ๋™์„ ํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ–ˆ๊ณ , Operato-twin UX๋Š” ์‚ฌ์šฉ์ž ์ง€์‹œ๋กœ ํ™”๋ฉด ์ฝ”๋“œ ์ˆ˜์ •์„ ๊ณ„์†ํ–ˆ๋‹ค(์ €์žฅ๋งˆ๋‹ค
475
+ ๋–  ์žˆ๋Š” :3000์˜ tsc --watchยทwebpack๊ณผ :4000 webpack์ด ๋ช‡ ์ดˆ์”ฉ ๋‹ค์‹œ ๋ฌถ๋Š”๋‹ค). Operato-board figure-model ์šด์˜์€ ์ธก์ • ์‹œ์ž‘ ๋’ค 13:56:42Z์— ใ€Œ์ž‘์—…
476
+ ๋, 30๋ถ„ ๋™์•ˆ ์ƒˆ buildยทtest ์—†์Œ, :3600 ์„œ๋ฒ„๋Š” ๋–  ์žˆ๋˜ ์“ฐ์ง€ ์•Š์Œใ€์ด๋ผ ๋‹ตํ–ˆ๋‹ค โ€” 1~10๋ฒˆ์งธ ์‹คํ–‰ ๋™์•ˆ์˜ ๊ทธ ์„ธ์…˜ ์ž‘์—…์€ ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์‹œ์ž‘
477
+ ์ง์ „ CPU ์ƒ์œ„์— buildยทtest ํ”„๋กœ์„ธ์Šค๋Š” ์—†์—ˆ๊ณ  1๋ถ„ ๋ถ€ํ•˜ ํ‰๊ท  3.27์ด์—ˆ์ง€๋งŒ, ์ด๊ฒƒ์ด ์ธก์ • ๋„์ค‘์˜ ๋ฌด๋ถ€ํ•˜๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. 7๋ฒˆ์งธ ์‹คํ–‰
478
+ (13:52:40Z) ์ง์ „ CPU ์ƒ์œ„์— `tsc โ€ฆ tsconfig.json --noEmit`์ด ์žˆ์—ˆ๋‹ค(์–ด๋А ์„ธ์…˜ ๊ฒƒ์ธ์ง€ ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค).
479
+
480
+ ์ธก์ • ์‹œ๊ฐ„ ์•ˆ์— ์ €์žฅ๋œ ์†Œ์Šค ํŒŒ์ผ(์ˆ˜์ • ์‹œ๊ฐ, Z): 13:48:01 twin ํŽ˜์ด์ง€(1๋ฒˆ์งธ ์‹คํ–‰ ์ค‘), 13:49:44 board `board-figures.ts`ยท13:49:53 board ๋ฒˆ์—ญ
481
+ ๋‹ค์„ฏ(3๋ฒˆ์งธ ์‹คํ–‰ ์ค‘), 13:55:24 twin ํŽ˜์ด์ง€(10๋ฒˆ์งธ), 13:58:27 twin ํŽ˜์ด์ง€(14๋ฒˆ์งธ), 14:01:16 twin ํŽ˜์ด์ง€์™€ ๋ฒˆ์—ญ ๋‹ค์„ฏ(17๋ฒˆ์งธ ๋ ๋ฌด๋ ต)ยท14:01:38 twin
482
+ ๋ฒˆ์—ญ ์บ์‹œ(18๋ฒˆ์งธ ์‹คํ–‰ ์ค‘).
483
+
484
+ | ์‹คํ–‰ | ์‹œ์ž‘ Z | ํŒ” | ์ค‘์•™๊ฐ’ | p95 | ๊ตฌ๊ฐ„ ์ค‘์•™๊ฐ’(1~100 / 101~200 / 201~300) | ๊ทธ ์‹คํ–‰ ์ค‘ ์ €์žฅ |
485
+ | ---- | --------- | -- | ------ | ---- | -------------------------------------- | --------------------- |
486
+ | 1 | 13:47:49 | D1 | 50.4 | 59.7 | 49.9 / 49.7 / 51.8 | 13:48:01 |
487
+ | 2 | 13:48:38 | D2 | 52.8 | 61.0 | 50.6 / 55.4 / 53.1 | ์—†์Œ |
488
+ | 3 | 13:49:28 | C | 50.2 | 57.0 | 50.0 / 50.8 / 50.0 | 13:49:44 ยท 13:49:53 |
489
+ | 4~11 | 13:50:17~ | โ€” | 49.2~50.6 | 53.3~58.2 | ์ฐจ์ด 1 ms ์•ˆํŒŽ | 13:55:24(10๋ฒˆ์งธ) |
490
+ | 12 | 13:56:36 | D2 | 56.5 | 67.7 | 56.7 / 57.9 / 54.1 | ์—†์Œ |
491
+ | 13ยท14 | 13:57:28~ | CยทD2 | 50.1ยท49.4 | 55.9ยท55.2 | โ€” | 13:58:27(14๋ฒˆ์งธ) |
492
+ | 15 | 13:59:03 | D1 | 54.6 | 61.8 | 55.3 / 55.9 / 51.9 | ์—†์Œ |
493
+ | 16ยท17 | 13:59:53~ | D2ยทD1 | 50.1ยท50.5 | 58.3ยท57.1 | โ€” | 14:01:16(17๋ฒˆ์งธ ๋ ๋ฌด๋ ต) |
494
+ | 18 | 14:01:30 | C | 52.5 | 61.6 | 50.7 / 51.7 / 56.0 | 14:01:38 |
495
+
496
+ ๋А๋ฆฐ ์‹คํ–‰ ๋„ท(2ยท12ยท15ยท18) ๊ฐ€์šด๋ฐ ์ €์žฅ๊ณผ ๊ฒน์นœ ๊ฒƒ์€ 18๋ฒˆ์งธ ํ•˜๋‚˜์ด๊ณ , ์ €์žฅ์ด ์žˆ์—ˆ๋˜ 1ยท3ยท10ยท14๋ฒˆ์งธ๋Š” ๋А๋ฆฌ์ง€ ์•Š์•˜๋‹ค โ€” ์ €์žฅ ์žฌ๋นŒ๋“œ์™€ ๋А๋ฆฐ ์‹คํ–‰์€
497
+ ์ผ๊ด€๋˜๊ฒŒ ๋Œ€์‘ํ•˜์ง€ ์•Š๋Š”๋‹ค(์ƒ๊ด€๊ด€๊ณ„๋กœ๋„ ์•ฝํ•˜๋‹ค).
498
+
499
+ ์ •์ •(์ธก์ • ๋’ค Operato-twin UX ์„ธ์…˜์˜ ์•Œ๋ฆผ, ์‹œ๊ฐ์€ ๊ทธ ์„ธ์…˜์ด ์ ์€ KST๋ฅผ Z๋กœ ์˜ฎ๊ธด ๊ฒƒ์ด๋ฉฐ ๋Œ€๋žต๊ฐ’): ๊ทธ ์„ธ์…˜์€ ์ธก์ • ๋™์•ˆ ์ €์žฅ ๋ง๊ณ ๋„ ์ง์ ‘
500
+ ์‹คํ–‰ํ•œ ์ž‘์—…์ด ์žˆ์—ˆ๋‹ค โ€” 13:49:01 ์ €์žฅ์œผ๋กœ ํ•œ ํŒŒ์ผ์ด 117๋งŒ ์ค„์ด ๋˜์–ด `tsc --watch`๊ฐ€ ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ–ˆ๊ณ (13:51 `git checkout`์œผ๋กœ ๋˜๋Œ๋ฆผ),
501
+ `tsc --noEmit`(13:49~13:50, 13:52:4x, 13:59~14:01 ๋‘ ๋ฒˆ), ์ „์ฒด `tsc` emit(13:56:03~06), twin `npm test`(13:56:44, 13:59:11, 14:01:55, ๊ฐ ์•ฝ 1๋ถ„).
502
+ ๊ฐ™์€ ๋ชฉ๋ก์˜ operato-boardยทwebcomponents ํŒŒ์ผ(13:47~13:49)์€ ๊ทธ ์„ธ์…˜ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค(๋ˆ„๊ตฌ ๊ฒƒ์ธ์ง€ ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค). ์‹คํ–‰ ๊ตฌ๊ฐ„๊ณผ ๋งž์ถ”๋ฉด:
503
+
504
+ | ๋А๋ฆฐ ์‹คํ–‰ | ๊ทธ ์‹คํ–‰๊ณผ ๊ฒน์นœ ์ž‘์—… |
505
+ | --------- | ------------------- |
506
+ | 2 (52.8) | 117๋งŒ ์ค„ ํŒŒ์ผ ์ €์žฅ๊ณผ `tsc --watch` ์ฒ˜๋ฆฌ, `tsc --noEmit` |
507
+ | 12 (56.5) | twin `npm test` ์‹œ์ž‘(13:56:44) |
508
+ | 15 (54.6) | twin `npm test` ์‹œ์ž‘(13:59:11), `tsc --noEmit` |
509
+ | 18 (52.5) | twin `npm test` ์‹œ์ž‘(14:01:55) |
510
+
511
+ ๋А๋ฆฐ ์‹คํ–‰ ๋„ท์ด ๋ชจ๋‘ ๋ฌด๊ฑฐ์šด ์ž‘์—…(ํฐ ํŒŒ์ผ์˜ tsc ์ฒ˜๋ฆฌ ๋˜๋Š” `npm test` ์‹œ์ž‘)๊ณผ ๊ฒน์ณค๋‹ค. `tsc --noEmit`์ด๋‚˜ ์ €์žฅ๋งŒ ๊ฒน์นœ ์‹คํ–‰(3ยท4ยท7ยท14ยท17)๊ณผ
512
+ `npm test` ๋์ž๋ฝ๋งŒ ๊ฒน์นœ ์‹คํ–‰(13ยท16)์€ ๋А๋ฆฌ์ง€ ์•Š์•˜๋‹ค. ์•ž ๋ฌธ๋‹จ์˜ ใ€Œ์ผ๊ด€๋˜๊ฒŒ ๋Œ€์‘ํ•˜์ง€ ์•Š๋Š”๋‹คใ€๋Š” ์ €์žฅ ์žฌ๋นŒ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ๋งž๊ณ , ์ง์ ‘ ์‹คํ–‰๋œ
513
+ ์ž‘์—…๊นŒ์ง€ ๋ณด๋ฉด ๋А๋ฆฐ ์‹คํ–‰๊ณผ ์ผ๊ด€๋˜๊ฒŒ ๊ฒน์นœ๋‹ค. ์‹œ๊ฐ์ด ๋Œ€๋žต๊ฐ’์ด๊ณ  ํ•œ ์ธก์ •์˜ ๊ด€์ฐฐ์ด๋ฏ€๋กœ ์ƒ๊ด€๊ด€๊ณ„๋กœ ์ ์œผ๋ฉฐ, ์›์ธ์œผ๋กœ ํ™•์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด ์ธก์ •์€
514
+ ใ€Œbuildยทtest ์–ต์ œใ€ ์กฐ๊ฑด์„ ๋‹ค ์ง€ํ‚ค์ง€ ๋ชปํ•œ ์ƒํƒœ์˜€๋‹ค. ์—ดยท์„ฑ๋Šฅ ๊ฒฝ๊ณ ๋Š” 18ํšŒ ๋ชจ๋‘ ์—†์—ˆ๋‹ค. ์ •๋ฆฌ ํ™•์ธ(ํŽ˜์ด์ง€ ๋‹จ์œ„)์€ 18ํšŒ ๋ชจ๋‘ context ํ•ด์ œ, target 3 โ†’ 3,
515
+ ์‹œ์ž‘ JS heap 7.5 MB. ์‹คํ–‰ ์•ˆ ์•ˆ์ •ํ™”: (1~100 โˆ’ 201~300) ์ค‘์•™๊ฐ’ +0.38 ms, ์–‘์ˆ˜ 12ํšŒ โ€” ๋ฏธ๋ฆฌ ์ •ํ•œ ๊ธฐ์ค€(ยฑ0.5, 12ํšŒ ์ดํ•˜)์„ ๊ฒจ์šฐ ์ถฉ์กฑํ–ˆ๋‹ค(18ํšŒ๋ฅผ
516
+ ๋ชจ์•„ ๋ณธ ํŒ๋‹จ์ด๋ฉฐ 2ยท12ยท15ยท18๋ฒˆ์งธ๋Š” ์‹คํ–‰ ์•ˆ์—์„œ๋„ ์›€์ง์˜€๋‹ค).
517
+
518
+ | 500๋Œ€ | A/A (D2โˆ’D1) round๋ณ„ | ํ›„๋ณด (Cโˆ’D1) round๋ณ„ |
519
+ | ---------------------- | -------------------------------------- | --------------------------------------- |
520
+ | ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’ ์ฐจ์ด ms | +2.35 โˆ’0.24 โˆ’0.18 +6.77 โˆ’5.27 โˆ’0.42 | โˆ’0.26 +1.19 โˆ’0.15 +0.85 โˆ’4.50 +2.00 |
521
+ | p95 ์ฐจ์ด ms | +1.29 โˆ’2.40 +0.79 +11.41 โˆ’6.62 +1.23 | โˆ’2.68 +2.51 +0.39 +1.43 โˆ’5.89 +4.49 |
522
+
523
+ | 500๋Œ€ | D1 | D2 | C |
524
+ | ----------------------------- | ------------ | ------------ | ------------ |
525
+ | ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’ / p95 (6ํšŒ ์ค‘์•™๊ฐ’) | 50.08 / 56.68 | 49.81 / 57.32 | 50.36 / 57.33 |
526
+ | ํ• ๋‹น MB/frame(6ํšŒ) | 77.17~77.52 | 76.97~77.38 | 74.91~75.28 |
527
+ | ๋ณด์œ  MB(์ธก์ • ๋’ค GC) | 42.8~43.4 | 42.9~43.4 | 42.6~43.2 |
528
+ | ๋‹จ๊ณ„ ๊ณ„์ธก `fromChanges` ms | 1.86 | 1.99 | 2.09 |
529
+ | ๋‹จ๊ณ„ ๊ณ„์ธก ์ปค๋„ / GC ms | 20.06 / 4.71 | 20.43 / 4.90 | 20.37 / 4.41 |
530
+
531
+ ์ž‘์—…๋Ÿ‰์€ ๊ฐ™์•˜๋‹ค(draw call 2001, ์‚ผ๊ฐํ˜• 944012, ์žฅ๋ฉด body 20000, ํ–‰ ๋ณต์‚ฌ 12000).
532
+
533
+ ํŒ์ •: ๋ณด๋ฅ˜๋กœ ๋งˆ๋ฌด๋ฆฌํ•œ๋‹ค. ํ›„๋ณด์™€ ๊ธฐ๋ก์„ ๋ณด์กดํ•œ๋‹ค. ํ• ๋‹น์€ ์•ฝ 2 MB/frame ์ค„์—ˆ์ง€๋งŒ, ํ”„๋ ˆ์ž„ ์ค‘์•™๊ฐ’ยทp95 ์ฐจ์ด๋Š” ๊ฐ™์€ ์‹คํ–‰์˜ A/A ๋ณ€๋™
534
+ (์ค‘์•™๊ฐ’ โˆ’5.27~+6.77, p95 โˆ’6.62~+11.41 ms) ์•ˆ์— ๋ฌปํ˜”๊ณ , 6ํšŒ ์ค‘์•™๊ฐ’์œผ๋กœ๋„ C๊ฐ€ ๋‘ A๋ณด๋‹ค ๋‚ซ์ง€ ์•Š์•˜๋‹ค. ๋‹จ๊ณ„ ๊ณ„์ธก์˜ `fromChanges`๋Š” ๋‘ A๋ณด๋‹ค
535
+ ๋†’์•˜๋‹ค. ์‹คํ–‰ ์‚ฌ์ด ๋ณ€๋™์˜ ์›์ธ์€ ๋ฏธํ™•์ •์ด์ง€๋งŒ, ์ด ์ธก์ •์—์„œ๋Š” ๋А๋ฆฐ ์‹คํ–‰ ๋„ท์ด ๋ชจ๋‘ ๋‹ค๋ฅธ ์„ธ์…˜์˜ ๋ฌด๊ฑฐ์šด ์ž‘์—…๊ณผ ๊ฒน์ณค๋‹ค(์œ„ ์ •์ •, ์ƒ๊ด€๊ด€๊ณ„).
536
+
537
+ ### ์กฐ์šฉํ•œ ์‹œ๊ฐ„๋Œ€์˜ A/A ์ง„๋‹จ (2026-10-05, ์ธก์ • ์ „์— ๊ณ ์ •)
538
+
539
+ ๊ฐ™์€ build(things-scene `91a5ac30` ยท figure-model `a5363bd`)๋ฅผ ์„ธ ํŒ” ๋ชจ๋‘์—, ๋ณด๋“œ 500๋Œ€, ๊ธฐ์กด ORDERS 6 round(18ํšŒ), ์›Œ๋ฐ์—… 300, ์ธก์ • 300,
540
+ `TRACE=1`, ํ”„๋กœํ•„ ์—†์Œ. ์‹œ์ž‘ ์กฐ๊ฑด: ์„ธ ์„ธ์…˜(ํ—ˆ๋“œ๋ ›์ผ ๋‹ด๋‹น, Operato-board figure-model ์šด์˜, Operato-twin ํŽ˜์ด์ง€ UI/UX ๊ฐœ์„ )์ด ๋ชจ๋‘ ใ€Œbuildยทtestยทtscยท
541
+ ์„œ๋ฒ„ ๊ธฐ๋™ยทํŒŒ์ผ ์ €์žฅ์ด ์—†๋Š” 25๋ถ„ใ€์„ ์•Œ๋ ค ์˜จ ๋’ค. ์ธก์ • ์ค‘ CPU ๊ธฐ๋ก: 5์ดˆ๋งˆ๋‹ค UTC ์‹œ๊ฐ, ๋ถ€ํ•˜ ํ‰๊ท (`sysctl vm.loadavg`), CPU ์ƒ์œ„ 8๊ฐœ ํ”„๋กœ์„ธ์Šค
542
+ (`ps -Ao pcpu,pid,etime,command -r`)๋ฅผ ํŒŒ์ผ์— ์ ๋Š”๋‹ค. ์ˆ˜์ง‘ ํ•œ ๋ฒˆ์˜ ๋น„์šฉ์€ CPU ์•ฝ 19 ms(10ํšŒ์— user 0.06 s + sys 0.13 s)๋กœ, 5์ดˆ ๊ฐ„๊ฒฉ์ด๋ฉด ํ•œ ์ฝ”์–ด์˜
543
+ ์•ฝ 0.4%๋‹ค. ๊ธฐ๋ก์€ ์ธก์ • ํ”„๋ ˆ์ž„๊ณผ ๋งž์ถฐ ๋ณด์ง€ ์•Š๊ณ  ์‹คํ–‰ ๊ตฌ๊ฐ„ ๋‹จ์œ„๋กœ ๋งž์ถ˜๋‹ค.
544
+ ํŒ๋‹จ: ์‹คํ–‰์„ ์ œ์™ธํ•˜๊ฑฐ๋‚˜ ํšŒ์ฐจ๋ฅผ ๋Š˜๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์ธก์ • ์ค‘ ๋‹ค๋ฅธ ์ž‘์—…์ด ๋ผ๋ฉด ใ€Œํ˜‘์˜ํ•œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•œ ์ธก์ •ใ€์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ , ์ถ”๊ฐ€ ์žฌ์ธก์ • ๋Œ€์‹ 
545
+ ๋ณ„๋„ ๋จธ์‹ ์ด๋‚˜ ์ „์šฉ ์ธก์ • ์‹œ๊ฐ„ ํ™•๋ณด๋ฅผ ๋‹ค์Œ ์„ ํƒ์œผ๋กœ ๋‘”๋‹ค. ์กฐ์šฉํ•œ ์กฐ๊ฑด์—์„œ ๋ณ€๋™์ด ์ค„๋ฉด ์™ธ๋ถ€ ๋ถ€ํ•˜ ์„ค๋ช…์„ ๋’ท๋ฐ›์นจํ•˜์ง€๋งŒ, ์›์ธ์„ ๋‹จ๋…์œผ๋กœ
546
+ ํ™•์ •ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ํ›„๋ณด ์ฑ„ํƒ๊ณผ ๋ฐœํ–‰์€ ๊ณ„์† ๋ณด๋ฅ˜ํ•œ๋‹ค.
547
+
548
+ ๊ฒฐ๊ณผ(์›์ž๋ฃŒ `figure-vs-js/gap-1791210931321.json`, CPU ๊ธฐ๋ก 168๊ฐœ, ์‹คํ–‰ 18ํšŒ 14:21:28Z~14:35:31Z, ์ œ์™ธ ์—†์Œ):
549
+
550
+ ์กฐ๊ฑด โ€” ํ˜‘์˜ํ•œ ์กฐ๊ฑด์„ ๋‹ค ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•œ ์ธก์ •์ด๋‹ค.
551
+ - ์‹œ์ž‘ ํŒ๋‹จ์˜ ์‹ค์ˆ˜: ํ—ˆ๋“œ๋ ›์ผ ๋‹ด๋‹น์˜ ํ™•์ธ์ด 14:21:27Z์— ์™”๋Š”๋ฐ 14:13Z์ฏค์œผ๋กœ ์ž˜๋ชป ๋ณด๊ณ  ๋ฐ”๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค. ์˜ˆ์ƒ ๋(14:37Z)์ด Operato-board์˜ ๊ตฌ๊ฐ„
552
+ (14:07:35Z๋ถ€ํ„ฐ 25๋ถ„)์„ ๋„˜์—ˆ๊ณ , ์ธก์ • ์ค‘ 14:22:18Z์— ๊ฐ™์€ ์„ธ์…˜(์„ธ์…˜ id ๊ฐ™์Œ)์ด 14:40Z๊นŒ์ง€ ๋Š˜๋ ค ์ฃผ์—ˆ๋‹ค. ์‹ค์ œ ๋์€ 14:35:31Z๋กœ ์„ธ ์„ธ์…˜์ด ์•Œ๋ ค ์˜จ
553
+ ๊ตฌ๊ฐ„ ์•ˆ์ด๋‹ค. Operato-twin UX๋Š” ใ€Œ๋น„์–ด ์žˆ์Œ, 25๋ถ„ ์•ฝ์†์€ ๋ชป ํ•จใ€์ด์—ˆ๋‹ค.
554
+ - ์ธก์ • ์ง์ „์— ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์…‹์ด ๊ธฐ๋™ํ–ˆ๋‹ค: plant `:4000`(14:20:42Z), office(14:20:49Z), twin `--webpack`(14:21:04Z) โ€” ๊ฐ๊ฐ `npm run build:server &&
555
+ copy:files && concurrently tsc --watch + things-factory-dev`. ์‹œ์ž‘ 25~45์ดˆ ์ „์ด๋ผ ์ฒซ ์ปดํŒŒ์ผยท๋ฌถ์Œ์ด 1~2๋ฒˆ์งธ ์‹คํ–‰๊ณผ ๊ฒน์ณค์„ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋А ์„ธ์…˜์ด
556
+ ๋„์› ๋Š”์ง€๋Š” ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. CPU ๊ธฐ๋ก์— ์žกํžŒ ๊ฒƒ์€ ๊ทธ `tsc --watch`(14:22:33Z 8.8%)์™€ twin `things-factory-dev`(14:23:08Z 7.5%)๋ฟ์ด๋‹ค.
557
+ - ๊ทธ ๋ฐ–์˜ ๋ถ€ํ•˜: Spotlight(`mds`ยท`mds_stores`, ์‹œ์ž‘ ๋ฌด๋ ต ์ตœ๋Œ€ ์•ฝ 150%, 15~17๋ฒˆ์งธ ์‹คํ–‰ ์ค‘ ํ‰๊ท  28~50%), ์‚ฌ์šฉ์ž Chrome(1~3ยท18๋ฒˆ์งธ ํ‰๊ท  34~90%),
558
+ `mediaanalysisd`(5๋ฒˆ์งธ 42%). 1๋ถ„ ๋ถ€ํ•˜ ํ‰๊ท ์€ 1๋ฒˆ์งธ 11.5, 2๋ฒˆ์งธ 6.3, ์ดํ›„ 2.3~3.8. ์ƒˆ๋กœ ์‹œ์ž‘๋œ buildยทtest(`npm test`, `tsc --noEmit` ๋“ฑ)๋Š” CPU
559
+ ๊ธฐ๋ก์— ์—†์—ˆ๋‹ค(5์ดˆ ๊ฐ„๊ฒฉ์ด๋ฏ€๋กœ ์งง์€ ์ž‘์—…์€ ๋น ์งˆ ์ˆ˜ ์žˆ๋‹ค).
560
+
561
+ | ํ•ญ๋ชฉ | ๊ฒฐ๊ณผ |
562
+ | ---------------------------------------- | --------------------------------------------------------------------- |
563
+ | A/A (D2โˆ’D1) round๋ณ„ ์ค‘์•™๊ฐ’ / p95 ms | โˆ’0.25 โˆ’0.22 โˆ’0.49 โˆ’0.47 +0.22 +0.13 / +0.14 +1.13 โˆ’0.09 โˆ’0.37 +0.96 +0.48 |
564
+ | ๊ฐ™์€ build (Cโˆ’D1) round๋ณ„ ์ค‘์•™๊ฐ’ / p95 ms | โˆ’0.80 โˆ’0.04 โˆ’0.75 โˆ’0.50 โˆ’0.12 โˆ’0.22 / +0.57 +1.09 โˆ’0.92 โˆ’1.02 +0.16 โˆ’0.36 |
565
+ | ์‹คํ–‰ 18ํšŒ ์ค‘์•™๊ฐ’ | 49.0~50.3 ms (1ยท2๋ฒˆ์งธ 50.3ยท50.0) |
566
+ | ์‹คํ–‰ ์•ˆ ์•ˆ์ •ํ™” | (1~100 โˆ’ 201~300) ์ค‘์•™๊ฐ’ +0.30 ms, ์–‘์ˆ˜ 14ํšŒ โ€” ๋ฏธ๋ฆฌ ์ •ํ•œ ๊ธฐ์ค€(12ํšŒ ์ดํ•˜) ๋ฐ– |
567
+
568
+ ํ•ด์„: ๊ฐ™์€ build์˜ A/A ์ค‘์•™๊ฐ’ ์ฐจ์ด๊ฐ€ โˆ’0.49~+0.22 ms(์•ž์˜ ์ธก์ •๋“ค ยฑ5~9 ms)๋กœ ์ค„์—ˆ๊ณ , ๋А๋ฆฐ ์‹คํ–‰ ๊ตฌ๊ฐ„์ด ์—†์—ˆ๋‹ค. ๋‹ค๋ฅธ ์„ธ์…˜์˜ ๋ฌด๊ฑฐ์šด ์ž‘์—…(`npm test`,
569
+ ํฐ ํŒŒ์ผ์˜ tsc ์ฒ˜๋ฆฌ)์ด ์—†๋˜ ์ด๋ฒˆ ์ธก์ •์—์„œ ๋ณ€๋™์ด ์ค„์—ˆ์œผ๋ฏ€๋กœ ์™ธ๋ถ€ ๋ถ€ํ•˜ ์„ค๋ช…์„ ๋’ท๋ฐ›์นจํ•œ๋‹ค. ์›์ธ์„ ๋‹จ๋…์œผ๋กœ ํ™•์ •ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค โ€” ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ธฐ๋™,
570
+ Spotlight, ์‚ฌ์šฉ์ž Chrome ๋ถ€ํ•˜๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ๋„ ๋ณ€๋™์ด ์ž‘์•˜๋‹ค๋Š” ์ ์—์„œ, ์–ด๋–ค ๋ถ€ํ•˜๊ฐ€ ์˜ํ–ฅ์„ ์ฃผ๋Š”์ง€๋Š” ๊ฐ€๋ ค์ง€์ง€ ์•Š์•˜๋‹ค. ์ธก์ • ๊ตฌ๊ฐ„ ์•ˆ์˜ ์ถ”์„ธ๋Š” ์–‘์ˆ˜
571
+ ์‹คํ–‰์ด 14ํšŒ๋กœ ๊ธฐ์ค€(12ํšŒ ์ดํ•˜)์„ ๋„˜์—ˆ๋‹ค(์ฐจ์ด์˜ ์ค‘์•™๊ฐ’ +0.30 ms๋Š” ๊ธฐ์ค€ ์•ˆ).
572
+ ์ด๋ฒˆ A/A ๋ณ€๋™์€ ์ž‘์•˜์ง€๋งŒ, 1 ms ํšจ๊ณผ์˜ ๊ฒ€์ถœ ๊ฐ€๋Šฅ์„ฑ์€ ์•„์ง ๊ฒ€์ฆํ•˜์ง€ ์•Š์•˜๋‹ค. ์‹คํ–‰ ์•ˆ ์•ˆ์ •ํ™” ๊ธฐ์ค€ ๋‘˜ ๊ฐ€์šด๋ฐ ํ•˜๋‚˜๋ฅผ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ–ˆ์œผ๋ฏ€๋กœ
573
+ ์™„์ „ํžˆ ์•ˆ์ •๋๋‹ค๊ณ  ํŒ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค.
574
+
575
+ ๋‹ค์Œ ์„ ํƒ(์‚ฌ์šฉ์ž ๊ฒฐ์ •, 10-06): ์ „์šฉ ์ธก์ • ์‹œ๊ฐ„ ํ™•๋ณด. ์ด ๋จธ์‹ ์—์„œ๋„ ๋ณ€๋™์ด ์ค„์–ด๋“  ๊ทผ๊ฑฐ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ณ„๋„ ๋จธ์‹ ์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ ์ „์— ์ด ์กฐ๊ฑด์„ ๋จผ์ € ์ œ๋Œ€๋กœ
576
+ ํ™•๋ณดํ•œ๋‹ค. ๊ทธ ์‹œ๊ฐ„์—๋Š” buildยทtestยทtscยทํŒŒ์ผ ์ €์žฅยท๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ธฐ๋™์„ ๋ฉˆ์ถ”๊ณ  ์ธก์ •์šฉ ๋ธŒ๋ผ์šฐ์ €๋งŒ ์“ด๋‹ค. ํ™•์ธ ์‹œ๊ฐ๊ณผ ์ข…๋ฃŒ ์˜ˆ์ • ์‹œ๊ฐ์„ ๋ช…์‹œํ•ด ๊ตฌ๊ฐ„์„
577
+ ํ™•๋ณดํ•œ ๋’ค, ๊ธฐ์กด ์กฐ๊ฑด(์›Œ๋ฐ์—… 300 ยท ์ธก์ • 300 ยท 18ํšŒ)์œผ๋กœ A/A๋ฅผ ๋จผ์ € ๊ฒ€์ฆํ•œ๋‹ค. ๊ทธ ์ „์—๋Š” ์ถ”๊ฐ€ ์ธก์ •์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
578
+ ํ›„๋ณด ์ฑ„ํƒ๊ณผ ๋ฐœํ–‰์€ ๊ณ„์† ๋ณด๋ฅ˜ํ•œ๋‹ค.
@@ -107,6 +107,16 @@ range, and says how it knows:
107
107
  - The endpoint-only shortcut is **wrong** for a rotating long part: inside at both end angles, out in the middle.
108
108
  That case takes the `bounded` row, not the `proven` one.
109
109
 
110
+ ### The occupancy is the instance's box on a board (ADR-0087, amendment 2026-10-06)
111
+
112
+ - The reference size is the declared occupancy's `max โˆ’ min` per axis, at the applied size and the resting state. The
113
+ board's 2D box is its XZ projection; the 3D object stands in it. A declared reach (a robot arm's 4700 mm) is the box.
114
+ - Every figure is resized. With `size.x/y/z` it is evaluated again with them (held to their range); without them it is
115
+ scaled in proportion, one scale on X, Y and Z. A proportional figure (no size inputs, or `sizing: 'uniform'`) keeps
116
+ its proportions, and shape, occupancy and box take the same scale.
117
+ - A state change never resizes the box: the occupancy is state-independent (ยง2โ€“3), so the box does not follow the
118
+ drawing of the current pose.
119
+
110
120
  ## 4. Completion criterion for this contract
111
121
 
112
122
  - The four providers' `@2` forms compile, evaluate, and their `@1` forms are unchanged (the operator-list guard
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/figure-model",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "The figure format (figure-asset-1): a kernel that evaluates a figure from its declared relations, the authoring commands a modeller and an AI share, the release gate and the score.",
5
5
  "keywords": [
6
6
  "figure",