@bldrs-ai/conway 1.568.1543 → 1.570.1544
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.
- package/compiled/examples/browser-bundled.cjs +27 -2
- package/compiled/examples/cli-bundled.cjs +28 -2
- package/compiled/examples/cli-step-bundled.cjs +28 -2
- package/compiled/examples/validator-bundled.cjs +27 -2
- package/compiled/src/AP214E3_2010/ap214_command_line_main.js +1 -0
- package/compiled/src/AP214E3_2010/ap214_regression_main.js +35 -7
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ap214.js +1 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +1 -0
- package/compiled/src/ifc/ifc_command_line_main.js +1 -0
- package/compiled/src/ifc/ifc_regression_main.js +77 -7
- package/compiled/src/loaders/conway_model_loader.d.ts.map +1 -1
- package/compiled/src/loaders/conway_model_loader.js +8 -0
- package/compiled/src/scripts/bless_perf_snapshot.test.js +44 -1
- package/compiled/src/scripts/perf_ab_compare.test.js +22 -7
- package/compiled/src/scripts/perf_csv_quoting.test.js +46 -8
- package/compiled/src/scripts/perf_writer_and_wallclock.test.d.ts +2 -0
- package/compiled/src/scripts/perf_writer_and_wallclock.test.d.ts.map +1 -0
- package/compiled/src/scripts/perf_writer_and_wallclock.test.js +665 -0
- package/compiled/src/statistics/statistics.d.ts +22 -0
- package/compiled/src/statistics/statistics.d.ts.map +1 -1
- package/compiled/src/statistics/statistics.js +26 -0
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ var import_node_process = require("node:process");
|
|
|
30
30
|
var readline = __toESM(require("node:readline"), 1);
|
|
31
31
|
|
|
32
32
|
// compiled/src/version/version.js
|
|
33
|
-
var versionString = "Conway v1.
|
|
33
|
+
var versionString = "Conway v1.570.1544";
|
|
34
34
|
|
|
35
35
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
36
36
|
var wasmType = "";
|
|
@@ -121,6 +121,31 @@ var Statistics = class {
|
|
|
121
121
|
setGeometryTime(value) {
|
|
122
122
|
this.geometryTime = value;
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Which pipeline measured this row (conway#555).
|
|
126
|
+
*
|
|
127
|
+
* The perf columns are not all comparable across pipelines: the IFC
|
|
128
|
+
* regression child runs with `RegressionCaptureState.memoization = FULL`,
|
|
129
|
+
* which keeps CSG temporaries in the map `calculateGeometrySize()` sums,
|
|
130
|
+
* so its `Geometry Memory` reads ~30% above the CLI's for the same model
|
|
131
|
+
* (MB-Khaya, 22.3 vs 16.8 MB). Retention has a matching caveat — the
|
|
132
|
+
* loader brings up a `ConwayGeometry` per load and the regression children
|
|
133
|
+
* do not. Naming the writer is what lets a reader, and
|
|
134
|
+
* `scripts/gen_delta_csv.cjs`, tell those apart instead of differencing
|
|
135
|
+
* across them.
|
|
136
|
+
*
|
|
137
|
+
* @return {string | undefined} - the writer label, or undefined
|
|
138
|
+
*/
|
|
139
|
+
getWriter() {
|
|
140
|
+
return this.writer;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
*
|
|
144
|
+
* @param value - a stable pipeline identifier, e.g. `ifc-cli`
|
|
145
|
+
*/
|
|
146
|
+
setWriter(value) {
|
|
147
|
+
this.writer = value;
|
|
148
|
+
}
|
|
124
149
|
/**
|
|
125
150
|
*
|
|
126
151
|
* @return {number | undefined} - total execution time or undefined
|
|
@@ -361,7 +386,7 @@ var Statistics = class {
|
|
|
361
386
|
const retained = `Retained RSS Delta: ${formatRetained(this.retainedRss)}, Retained Heap-Used Delta: ${formatRetained(this.retainedHeapUsed)}, Retained External Delta: ${formatRetained(this.retainedExternal)}, `;
|
|
362
387
|
const breakdown = this.formatGeometryTypeCounts();
|
|
363
388
|
const geometryTypes = breakdown !== void 0 ? `, Geometry Types: ${breakdown}` : "";
|
|
364
|
-
return `[${dateString}]: Load Status: ${this.loadStatus}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
389
|
+
return `[${dateString}]: Load Status: ${this.loadStatus}, Writer: ${this.writer ?? "N/A"}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
365
390
|
}
|
|
366
391
|
};
|
|
367
392
|
|
|
@@ -14965,7 +14965,7 @@ ${t5.join("\n")}` : "";
|
|
|
14965
14965
|
var import_process = require("process");
|
|
14966
14966
|
|
|
14967
14967
|
// compiled/src/version/version.js
|
|
14968
|
-
var versionString = "Conway v1.
|
|
14968
|
+
var versionString = "Conway v1.570.1544";
|
|
14969
14969
|
|
|
14970
14970
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
14971
14971
|
function pThreadsAllowed() {
|
|
@@ -15795,6 +15795,31 @@ var Statistics = class {
|
|
|
15795
15795
|
setGeometryTime(value) {
|
|
15796
15796
|
this.geometryTime = value;
|
|
15797
15797
|
}
|
|
15798
|
+
/**
|
|
15799
|
+
* Which pipeline measured this row (conway#555).
|
|
15800
|
+
*
|
|
15801
|
+
* The perf columns are not all comparable across pipelines: the IFC
|
|
15802
|
+
* regression child runs with `RegressionCaptureState.memoization = FULL`,
|
|
15803
|
+
* which keeps CSG temporaries in the map `calculateGeometrySize()` sums,
|
|
15804
|
+
* so its `Geometry Memory` reads ~30% above the CLI's for the same model
|
|
15805
|
+
* (MB-Khaya, 22.3 vs 16.8 MB). Retention has a matching caveat — the
|
|
15806
|
+
* loader brings up a `ConwayGeometry` per load and the regression children
|
|
15807
|
+
* do not. Naming the writer is what lets a reader, and
|
|
15808
|
+
* `scripts/gen_delta_csv.cjs`, tell those apart instead of differencing
|
|
15809
|
+
* across them.
|
|
15810
|
+
*
|
|
15811
|
+
* @return {string | undefined} - the writer label, or undefined
|
|
15812
|
+
*/
|
|
15813
|
+
getWriter() {
|
|
15814
|
+
return this.writer;
|
|
15815
|
+
}
|
|
15816
|
+
/**
|
|
15817
|
+
*
|
|
15818
|
+
* @param value - a stable pipeline identifier, e.g. `ifc-cli`
|
|
15819
|
+
*/
|
|
15820
|
+
setWriter(value) {
|
|
15821
|
+
this.writer = value;
|
|
15822
|
+
}
|
|
15798
15823
|
/**
|
|
15799
15824
|
*
|
|
15800
15825
|
* @return {number | undefined} - total execution time or undefined
|
|
@@ -16035,7 +16060,7 @@ var Statistics = class {
|
|
|
16035
16060
|
const retained = `Retained RSS Delta: ${formatRetained(this.retainedRss)}, Retained Heap-Used Delta: ${formatRetained(this.retainedHeapUsed)}, Retained External Delta: ${formatRetained(this.retainedExternal)}, `;
|
|
16036
16061
|
const breakdown = this.formatGeometryTypeCounts();
|
|
16037
16062
|
const geometryTypes = breakdown !== void 0 ? `, Geometry Types: ${breakdown}` : "";
|
|
16038
|
-
return `[${dateString}]: Load Status: ${this.loadStatus}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
16063
|
+
return `[${dateString}]: Load Status: ${this.loadStatus}, Writer: ${this.writer ?? "N/A"}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
16039
16064
|
}
|
|
16040
16065
|
};
|
|
16041
16066
|
|
|
@@ -95731,6 +95756,7 @@ function doWork() {
|
|
|
95731
95756
|
if (statistics !== void 0) {
|
|
95732
95757
|
const dataParseTime = parseDataTimeEnd - parseDataTimeStart;
|
|
95733
95758
|
statistics.setLoadStatus("OK");
|
|
95759
|
+
statistics.setWriter("ifc-cli");
|
|
95734
95760
|
statistics.setParseTime(dataParseTime);
|
|
95735
95761
|
statistics.setTotalTime(allTime);
|
|
95736
95762
|
let FILE_NAME = stepHeader.headers.get("FILE_NAME");
|
|
@@ -15943,7 +15943,7 @@ var ParsingBuffer = class {
|
|
|
15943
15943
|
};
|
|
15944
15944
|
|
|
15945
15945
|
// compiled/src/version/version.js
|
|
15946
|
-
var versionString = "Conway v1.
|
|
15946
|
+
var versionString = "Conway v1.570.1544";
|
|
15947
15947
|
|
|
15948
15948
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
15949
15949
|
function pThreadsAllowed() {
|
|
@@ -16773,6 +16773,31 @@ var Statistics = class {
|
|
|
16773
16773
|
setGeometryTime(value) {
|
|
16774
16774
|
this.geometryTime = value;
|
|
16775
16775
|
}
|
|
16776
|
+
/**
|
|
16777
|
+
* Which pipeline measured this row (conway#555).
|
|
16778
|
+
*
|
|
16779
|
+
* The perf columns are not all comparable across pipelines: the IFC
|
|
16780
|
+
* regression child runs with `RegressionCaptureState.memoization = FULL`,
|
|
16781
|
+
* which keeps CSG temporaries in the map `calculateGeometrySize()` sums,
|
|
16782
|
+
* so its `Geometry Memory` reads ~30% above the CLI's for the same model
|
|
16783
|
+
* (MB-Khaya, 22.3 vs 16.8 MB). Retention has a matching caveat — the
|
|
16784
|
+
* loader brings up a `ConwayGeometry` per load and the regression children
|
|
16785
|
+
* do not. Naming the writer is what lets a reader, and
|
|
16786
|
+
* `scripts/gen_delta_csv.cjs`, tell those apart instead of differencing
|
|
16787
|
+
* across them.
|
|
16788
|
+
*
|
|
16789
|
+
* @return {string | undefined} - the writer label, or undefined
|
|
16790
|
+
*/
|
|
16791
|
+
getWriter() {
|
|
16792
|
+
return this.writer;
|
|
16793
|
+
}
|
|
16794
|
+
/**
|
|
16795
|
+
*
|
|
16796
|
+
* @param value - a stable pipeline identifier, e.g. `ifc-cli`
|
|
16797
|
+
*/
|
|
16798
|
+
setWriter(value) {
|
|
16799
|
+
this.writer = value;
|
|
16800
|
+
}
|
|
16776
16801
|
/**
|
|
16777
16802
|
*
|
|
16778
16803
|
* @return {number | undefined} - total execution time or undefined
|
|
@@ -17013,7 +17038,7 @@ var Statistics = class {
|
|
|
17013
17038
|
const retained = `Retained RSS Delta: ${formatRetained(this.retainedRss)}, Retained Heap-Used Delta: ${formatRetained(this.retainedHeapUsed)}, Retained External Delta: ${formatRetained(this.retainedExternal)}, `;
|
|
17014
17039
|
const breakdown = this.formatGeometryTypeCounts();
|
|
17015
17040
|
const geometryTypes = breakdown !== void 0 ? `, Geometry Types: ${breakdown}` : "";
|
|
17016
|
-
return `[${dateString}]: Load Status: ${this.loadStatus}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
17041
|
+
return `[${dateString}]: Load Status: ${this.loadStatus}, Writer: ${this.writer ?? "N/A"}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
17017
17042
|
}
|
|
17018
17043
|
};
|
|
17019
17044
|
|
|
@@ -86105,6 +86130,7 @@ async function doWork() {
|
|
|
86105
86130
|
if (statistics !== void 0) {
|
|
86106
86131
|
const dataParseTime = parseDataTimeEnd - parseDataTimeStart;
|
|
86107
86132
|
statistics.setLoadStatus("OK");
|
|
86133
|
+
statistics.setWriter("ap214-cli");
|
|
86108
86134
|
statistics.setParseTime(dataParseTime);
|
|
86109
86135
|
statistics.setTotalTime(allTime);
|
|
86110
86136
|
let FILE_NAME = stepHeader.headers.get("FILE_NAME");
|
|
@@ -944,7 +944,7 @@ var EntityTypesIfcCount = 909;
|
|
|
944
944
|
var entity_types_ifc_gen_default = EntityTypesIfc;
|
|
945
945
|
|
|
946
946
|
// compiled/src/version/version.js
|
|
947
|
-
var versionString = "Conway v1.
|
|
947
|
+
var versionString = "Conway v1.570.1544";
|
|
948
948
|
|
|
949
949
|
// compiled/dependencies/conway-geom/interface/conway_geometry.js
|
|
950
950
|
var wasmType = "";
|
|
@@ -1035,6 +1035,31 @@ var Statistics = class {
|
|
|
1035
1035
|
setGeometryTime(value) {
|
|
1036
1036
|
this.geometryTime = value;
|
|
1037
1037
|
}
|
|
1038
|
+
/**
|
|
1039
|
+
* Which pipeline measured this row (conway#555).
|
|
1040
|
+
*
|
|
1041
|
+
* The perf columns are not all comparable across pipelines: the IFC
|
|
1042
|
+
* regression child runs with `RegressionCaptureState.memoization = FULL`,
|
|
1043
|
+
* which keeps CSG temporaries in the map `calculateGeometrySize()` sums,
|
|
1044
|
+
* so its `Geometry Memory` reads ~30% above the CLI's for the same model
|
|
1045
|
+
* (MB-Khaya, 22.3 vs 16.8 MB). Retention has a matching caveat — the
|
|
1046
|
+
* loader brings up a `ConwayGeometry` per load and the regression children
|
|
1047
|
+
* do not. Naming the writer is what lets a reader, and
|
|
1048
|
+
* `scripts/gen_delta_csv.cjs`, tell those apart instead of differencing
|
|
1049
|
+
* across them.
|
|
1050
|
+
*
|
|
1051
|
+
* @return {string | undefined} - the writer label, or undefined
|
|
1052
|
+
*/
|
|
1053
|
+
getWriter() {
|
|
1054
|
+
return this.writer;
|
|
1055
|
+
}
|
|
1056
|
+
/**
|
|
1057
|
+
*
|
|
1058
|
+
* @param value - a stable pipeline identifier, e.g. `ifc-cli`
|
|
1059
|
+
*/
|
|
1060
|
+
setWriter(value) {
|
|
1061
|
+
this.writer = value;
|
|
1062
|
+
}
|
|
1038
1063
|
/**
|
|
1039
1064
|
*
|
|
1040
1065
|
* @return {number | undefined} - total execution time or undefined
|
|
@@ -1275,7 +1300,7 @@ var Statistics = class {
|
|
|
1275
1300
|
const retained = `Retained RSS Delta: ${formatRetained(this.retainedRss)}, Retained Heap-Used Delta: ${formatRetained(this.retainedHeapUsed)}, Retained External Delta: ${formatRetained(this.retainedExternal)}, `;
|
|
1276
1301
|
const breakdown = this.formatGeometryTypeCounts();
|
|
1277
1302
|
const geometryTypes = breakdown !== void 0 ? `, Geometry Types: ${breakdown}` : "";
|
|
1278
|
-
return `[${dateString}]: Load Status: ${this.loadStatus}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
1303
|
+
return `[${dateString}]: Load Status: ${this.loadStatus}, Writer: ${this.writer ?? "N/A"}, Project Name: ${this.projectName}, Version: ${versionStr}, Conway Version: ${conwayVersionNumber}-${wasmType}, Parse Time: ${this.parseTime} ms, Geometry Time: ${this.geometryTime} ms, Total Time: ${this.totalTime} ms, Geometry Memory: ${this.geometryMemory?.toFixed(3)} MB, WASM Heap High-Water: ${this.wasmHeapPeak?.toFixed(3)} MB, ` + retained + products + `Memory Statistics: ${this.memoryStatistics}, Preprocessor Version: ${this.preprocessorVersion}, Originating System: ${this.originatingSystem}` + geometryTypes;
|
|
1279
1304
|
}
|
|
1280
1305
|
};
|
|
1281
1306
|
|
|
@@ -217,6 +217,7 @@ async function doWork() {
|
|
|
217
217
|
if (statistics !== void 0) {
|
|
218
218
|
const dataParseTime = parseDataTimeEnd - parseDataTimeStart;
|
|
219
219
|
statistics.setLoadStatus("OK");
|
|
220
|
+
statistics.setWriter("ap214-cli");
|
|
220
221
|
statistics.setParseTime(dataParseTime);
|
|
221
222
|
statistics.setTotalTime(allTime);
|
|
222
223
|
let FILE_NAME = stepHeader.headers.get("FILE_NAME");
|
|
@@ -45,6 +45,18 @@ const KB_PER_MB = 1024;
|
|
|
45
45
|
const PERF_MB_PRECISION = 2;
|
|
46
46
|
/** Placeholder for a column this row has no measurement for. */
|
|
47
47
|
const UNMEASURED = "N/A";
|
|
48
|
+
/**
|
|
49
|
+
* This child's value for the `writer` column (conway#555).
|
|
50
|
+
*
|
|
51
|
+
* Distinct from the IFC child's for a reason that is easy to miss: the two
|
|
52
|
+
* run as separate processes and `RegressionCaptureState.memoization` is a
|
|
53
|
+
* process-global, so the IFC child's `FULL` — which keeps CSG temporaries in
|
|
54
|
+
* the map `calculateGeometrySize()` sums — does not apply here. A mixed
|
|
55
|
+
* IFC/STEP corpus therefore aggregates two capture modes into one
|
|
56
|
+
* `geometryMemoryMb` column, which is precisely what this column exists to
|
|
57
|
+
* disclose.
|
|
58
|
+
*/
|
|
59
|
+
const PERF_WRITER = "ap214-regression";
|
|
48
60
|
/**
|
|
49
61
|
* Capture the end-of-load memory figures for a perf row.
|
|
50
62
|
*
|
|
@@ -80,17 +92,23 @@ function capturePerfMemory(geometryMemoryBytes, wasmHeapBytes) {
|
|
|
80
92
|
* was not exposed to settle with. No `retainedWasmHeapMb` — the wasm heap is
|
|
81
93
|
* grow-only, so over one cycle it could only restate `peakWasmHeapMb`.
|
|
82
94
|
*
|
|
95
|
+
* `writer` names the pipeline (conway#555) and `totalTimeMs` is the load's
|
|
96
|
+
* wall clock rather than the sum of the two stage columns (conway#562), with
|
|
97
|
+
* that sum kept as `parsePlusGeometryMs`. Both changes are described in full
|
|
98
|
+
* on the IFC child's copy.
|
|
99
|
+
*
|
|
83
100
|
* @param perfPath Path to write the CSV to. Empty string disables.
|
|
84
101
|
* @param stepFile Source STEP file path (basename used as the row key).
|
|
85
102
|
* @param status OK or FAIL.
|
|
86
103
|
* @param parseTimeMs Parse stage duration in ms.
|
|
87
104
|
* @param geometryTimeMs Geometry extraction duration in ms.
|
|
88
|
-
* @param totalTimeMs
|
|
105
|
+
* @param totalTimeMs The load's wall clock — file read through teardown.
|
|
106
|
+
* @param parsePlusGeometryMs The sum of the two stage columns above.
|
|
89
107
|
* @param memory The row's memory figures, captured at the points in the load
|
|
90
108
|
* each is defined at. Defaults to capturing the end-of-load instants here,
|
|
91
109
|
* which is what the FAIL paths want — they have nothing else to report.
|
|
92
110
|
*/
|
|
93
|
-
async function writePerfCsvIfRequested(perfPath, stepFile, status, parseTimeMs, geometryTimeMs, totalTimeMs, memory = capturePerfMemory()) {
|
|
111
|
+
async function writePerfCsvIfRequested(perfPath, stepFile, status, parseTimeMs, geometryTimeMs, totalTimeMs, parsePlusGeometryMs, memory = capturePerfMemory()) {
|
|
94
112
|
if (perfPath.length === 0) {
|
|
95
113
|
return;
|
|
96
114
|
}
|
|
@@ -116,10 +134,12 @@ async function writePerfCsvIfRequested(perfPath, stepFile, status, parseTimeMs,
|
|
|
116
134
|
const retainedExternalMb = retained !== void 0 ?
|
|
117
135
|
retained.externalMb.toFixed(PERF_MB_PRECISION) : UNMEASURED;
|
|
118
136
|
const fileName = csvSafeString(path.basename(stepFile));
|
|
119
|
-
const header = "file,status,parseTimeMs,geometryTimeMs,totalTimeMs,
|
|
137
|
+
const header = "file,status,writer,parseTimeMs,geometryTimeMs,totalTimeMs," +
|
|
138
|
+
"parsePlusGeometryMs,geometryMemoryMb," +
|
|
120
139
|
"peakWasmHeapMb,rssMb,peakRssMb,heapUsedMb,heapTotalMb,externalMb," +
|
|
121
140
|
"arrayBuffersMb,retainedRssMb,retainedHeapUsedMb,retainedExternalMb\n";
|
|
122
|
-
const row = `${fileName},${status},${
|
|
141
|
+
const row = `${fileName},${status},${PERF_WRITER},${parseTimeMs},${geometryTimeMs},` +
|
|
142
|
+
`${totalTimeMs},${parsePlusGeometryMs},` +
|
|
123
143
|
`${geometryMemoryMb},${peakWasmHeapMb},${rssMb},${peakRssMb},` +
|
|
124
144
|
`${heapUsedMb},${heapTotalMb},${externalMb},${arrayBuffersMb},` +
|
|
125
145
|
`${retainedRssMb},${retainedHeapUsedMb},${retainedExternalMb}\n`;
|
|
@@ -213,6 +233,10 @@ function doWork() {
|
|
|
213
233
|
// reason recorded on that function: the batch passes `--expose-gc` to
|
|
214
234
|
// every child, not just the ones given `--perf`.
|
|
215
235
|
const memoryBaseline = await settleAndSampleMemoryForPerf(perfPath);
|
|
236
|
+
// Where `totalTimeMs` starts (conway#562): after the settle, so the
|
|
237
|
+
// retention samples stay outside every timed column, and before the
|
|
238
|
+
// file read, which is real load cost no stage clock could see.
|
|
239
|
+
const loadStartMs = Date.now();
|
|
216
240
|
try {
|
|
217
241
|
stepBuffer = fs.readFileSync(stepFile);
|
|
218
242
|
}
|
|
@@ -268,7 +292,7 @@ function doWork() {
|
|
|
268
292
|
const parseEndMs = Date.now();
|
|
269
293
|
const parseTimeMs = parseEndMs - parseStartMs;
|
|
270
294
|
if (model === void 0) {
|
|
271
|
-
await writePerfCsvIfRequested(perfPath, stepFile, "FAIL", parseTimeMs, 0, parseTimeMs);
|
|
295
|
+
await writePerfCsvIfRequested(perfPath, stepFile, "FAIL", parseTimeMs, 0, Date.now() - loadStartMs, parseTimeMs);
|
|
272
296
|
displayErrors(stepFile);
|
|
273
297
|
return;
|
|
274
298
|
}
|
|
@@ -277,7 +301,9 @@ function doWork() {
|
|
|
277
301
|
const extraction = geometryExtraction(model);
|
|
278
302
|
const geomEndMs = Date.now();
|
|
279
303
|
const geometryTimeMs = geomEndMs - geomStartMs;
|
|
280
|
-
|
|
304
|
+
// The sum `totalTimeMs` used to hold — an identity by construction,
|
|
305
|
+
// since `geomStartMs` is taken on the line after `parseEndMs`.
|
|
306
|
+
const parsePlusGeometryMs = geomEndMs - parseStartMs;
|
|
281
307
|
const perfStatus = extraction === void 0 ? "FAIL" : "OK";
|
|
282
308
|
// Sized before anything downstream can release meshes, and only on
|
|
283
309
|
// the OK path: a failed extraction leaves a partial cache whose size
|
|
@@ -301,8 +327,10 @@ function doWork() {
|
|
|
301
327
|
// the blessed output beats saving the work. The settle below IS
|
|
302
328
|
// gated; see `memoryBaseline` above.
|
|
303
329
|
model.invalidate(true);
|
|
330
|
+
// Closes on the teardown, before the retained settle.
|
|
331
|
+
const totalTimeMs = Date.now() - loadStartMs;
|
|
304
332
|
memory.retained = retainedMemoryMb(memoryBaseline, await settleAndSampleMemoryForPerf(perfPath));
|
|
305
|
-
await writePerfCsvIfRequested(perfPath, stepFile, perfStatus, parseTimeMs, geometryTimeMs, totalTimeMs, memory);
|
|
333
|
+
await writePerfCsvIfRequested(perfPath, stepFile, perfStatus, parseTimeMs, geometryTimeMs, totalTimeMs, parsePlusGeometryMs, memory);
|
|
306
334
|
// AFTP sizing pass: no-op unless the wasm module was built with
|
|
307
335
|
// CONWAY_ALLOC_TELEMETRY (see conway-geom structures/alloc_telemetry.h).
|
|
308
336
|
conwayGeom.dumpAllocTelemetry(path.basename(stepFile));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api_proxy_ap214.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ap214.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ifc_api_proxy_ap214.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ap214.ts"],"names":[],"mappings":"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"}
|
|
@@ -233,6 +233,7 @@ export class IfcApiProxyAP214 {
|
|
|
233
233
|
const allTimeEnd = Date.now();
|
|
234
234
|
const allTime = allTimeEnd - allTimeStart;
|
|
235
235
|
statistics?.setLoadStatus("OK");
|
|
236
|
+
statistics?.setWriter("ap214-web-ifc-proxy");
|
|
236
237
|
statistics?.setTotalTime(allTime);
|
|
237
238
|
if (ap214Version !== void 0) {
|
|
238
239
|
statistics?.setVersion(ap214Version);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ifc_api_proxy_ifc.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/ifc_api_proxy_ifc.ts"],"names":[],"mappings":"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"}
|
|
@@ -332,6 +332,7 @@ export class IfcApiProxyIfc {
|
|
|
332
332
|
const allTimeEnd = Date.now();
|
|
333
333
|
const allTime = allTimeEnd - allTimeStart;
|
|
334
334
|
statistics?.setLoadStatus("OK");
|
|
335
|
+
statistics?.setWriter("ifc-web-ifc-proxy");
|
|
335
336
|
statistics?.setTotalTime(allTime);
|
|
336
337
|
if (ifcVersion !== void 0) {
|
|
337
338
|
statistics?.setVersion(ifcVersion);
|
|
@@ -328,6 +328,7 @@ function doWork() {
|
|
|
328
328
|
if (statistics !== void 0) {
|
|
329
329
|
const dataParseTime = parseDataTimeEnd - parseDataTimeStart;
|
|
330
330
|
statistics.setLoadStatus("OK");
|
|
331
|
+
statistics.setWriter("ifc-cli");
|
|
331
332
|
statistics.setParseTime(dataParseTime);
|
|
332
333
|
statistics.setTotalTime(allTime);
|
|
333
334
|
let FILE_NAME = stepHeader.headers.get("FILE_NAME");
|
|
@@ -49,6 +49,15 @@ const KB_PER_MB = 1024;
|
|
|
49
49
|
const PERF_MB_PRECISION = 2;
|
|
50
50
|
/** Placeholder for a column this row has no measurement for. */
|
|
51
51
|
const UNMEASURED = "N/A";
|
|
52
|
+
/**
|
|
53
|
+
* This child's value for the `writer` column (conway#555).
|
|
54
|
+
*
|
|
55
|
+
* A row is only comparable to another row from the same writer for the
|
|
56
|
+
* pipeline-dependent columns — see the note on `writePerfCsvIfRequested`.
|
|
57
|
+
* The string is the join key `gen_delta_csv.cjs` compares, so it is a
|
|
58
|
+
* stable identifier rather than prose.
|
|
59
|
+
*/
|
|
60
|
+
const PERF_WRITER = "ifc-regression";
|
|
52
61
|
/**
|
|
53
62
|
* Capture the end-of-load memory figures for a perf row.
|
|
54
63
|
*
|
|
@@ -69,6 +78,44 @@ function capturePerfMemory(geometryMemoryBytes, wasmHeapBytes) {
|
|
|
69
78
|
* taken at call time; for the OK path this is right after geometry extraction
|
|
70
79
|
* — close to peak. No-op when perfPath is empty.
|
|
71
80
|
*
|
|
81
|
+
* WHICH PIPELINE PRODUCED THE ROW (conway#555):
|
|
82
|
+
*
|
|
83
|
+
* writer The pipeline that measured this row. It is here because
|
|
84
|
+
* `geometryMemoryMb` MEANS SOMETHING DIFFERENT depending
|
|
85
|
+
* on the answer, and nothing in the file used to say so:
|
|
86
|
+
* this child sets
|
|
87
|
+
* `RegressionCaptureState.memoization = FULL`, which is
|
|
88
|
+
* what stops `deleteTemporaries()` running and keeps every
|
|
89
|
+
* CSG intermediate and boolean operand in
|
|
90
|
+
* `model.geometry` — the map `calculateGeometrySize()`
|
|
91
|
+
* sums. The digest below needs those temporaries, so this
|
|
92
|
+
* is not a defect to fix by making the numbers agree; it
|
|
93
|
+
* is a divergence to name. MB-Khaya reads 22.3 MB here
|
|
94
|
+
* against the CLI's 16.8 MB, a ~30% gap that is pure
|
|
95
|
+
* methodology. `gen_delta_csv.cjs` refuses to difference
|
|
96
|
+
* the pipeline-dependent columns across two writers.
|
|
97
|
+
*
|
|
98
|
+
* WHICH COLUMNS ARE TIME, AND OVER WHAT (conway#562):
|
|
99
|
+
*
|
|
100
|
+
* totalTimeMs The load's WALL CLOCK: file read through teardown,
|
|
101
|
+
* which is what `ConwayModelLoader.loadModelWithScene`
|
|
102
|
+
* has always written into this column name. It used to be
|
|
103
|
+
* `geomEndMs - parseStartMs` here, which is
|
|
104
|
+
* `parseTimeMs + geometryTimeMs` BY CONSTRUCTION —
|
|
105
|
+
* `geomStartMs` was taken on the line after `parseEndMs`,
|
|
106
|
+
* and the blessed 1.451 snapshot bears it out at 0-5 ms
|
|
107
|
+
* of slack on all 46 OK rows. Calling that "Total" hid
|
|
108
|
+
* the file read, the wasm init and the teardown, and put
|
|
109
|
+
* two different quantities in one column across the two
|
|
110
|
+
* pipelines.
|
|
111
|
+
* parsePlusGeometryMs That sum, kept as its own column so the identity is
|
|
112
|
+
* visible rather than coincidental. The gap between the
|
|
113
|
+
* two is everything the stage clocks cannot see.
|
|
114
|
+
*
|
|
115
|
+
* Neither is time-to-first-mesh, and no column here is: this child runs a
|
|
116
|
+
* resident, fully-extracted open, which is not the windowed deferred pump
|
|
117
|
+
* Share drives. See conway#562 §2.
|
|
118
|
+
*
|
|
72
119
|
* WHICH COLUMNS ARE PEAK AND WHICH ARE INSTANTS — they are not comparable and
|
|
73
120
|
* the difference is large (conway#552):
|
|
74
121
|
*
|
|
@@ -151,12 +198,16 @@ function capturePerfMemory(geometryMemoryBytes, wasmHeapBytes) {
|
|
|
151
198
|
* @param status OK or FAIL.
|
|
152
199
|
* @param parseTimeMs Parse stage duration in ms.
|
|
153
200
|
* @param geometryTimeMs Geometry extraction duration in ms.
|
|
154
|
-
* @param totalTimeMs
|
|
201
|
+
* @param totalTimeMs The load's WALL CLOCK — file read through teardown. See
|
|
202
|
+
* the column note above for why this stopped being the sum of the two stages
|
|
203
|
+
* above it (conway#562).
|
|
204
|
+
* @param parsePlusGeometryMs That sum, which is what `totalTimeMs` used to
|
|
205
|
+
* hold.
|
|
155
206
|
* @param memory The row's memory figures, captured at the points in the load
|
|
156
207
|
* each is defined at. Defaults to capturing the end-of-load instants here,
|
|
157
208
|
* which is what the FAIL paths want — they have nothing else to report.
|
|
158
209
|
*/
|
|
159
|
-
async function writePerfCsvIfRequested(perfPath, ifcFile, status, parseTimeMs, geometryTimeMs, totalTimeMs, memory = capturePerfMemory()) {
|
|
210
|
+
async function writePerfCsvIfRequested(perfPath, ifcFile, status, parseTimeMs, geometryTimeMs, totalTimeMs, parsePlusGeometryMs, memory = capturePerfMemory()) {
|
|
160
211
|
if (perfPath.length === 0) {
|
|
161
212
|
return;
|
|
162
213
|
}
|
|
@@ -182,10 +233,12 @@ async function writePerfCsvIfRequested(perfPath, ifcFile, status, parseTimeMs, g
|
|
|
182
233
|
const retainedExternalMb = retained !== void 0 ?
|
|
183
234
|
retained.externalMb.toFixed(PERF_MB_PRECISION) : UNMEASURED;
|
|
184
235
|
const fileName = csvSafeString(path.basename(ifcFile));
|
|
185
|
-
const header = "file,status,parseTimeMs,geometryTimeMs,totalTimeMs,
|
|
236
|
+
const header = "file,status,writer,parseTimeMs,geometryTimeMs,totalTimeMs," +
|
|
237
|
+
"parsePlusGeometryMs,geometryMemoryMb," +
|
|
186
238
|
"peakWasmHeapMb,rssMb,peakRssMb,heapUsedMb,heapTotalMb,externalMb," +
|
|
187
239
|
"arrayBuffersMb,retainedRssMb,retainedHeapUsedMb,retainedExternalMb\n";
|
|
188
|
-
const row = `${fileName},${status},${
|
|
240
|
+
const row = `${fileName},${status},${PERF_WRITER},${parseTimeMs},${geometryTimeMs},` +
|
|
241
|
+
`${totalTimeMs},${parsePlusGeometryMs},` +
|
|
189
242
|
`${geometryMemoryMb},${peakWasmHeapMb},${rssMb},${peakRssMb},` +
|
|
190
243
|
`${heapUsedMb},${heapTotalMb},${externalMb},${arrayBuffersMb},` +
|
|
191
244
|
`${retainedRssMb},${retainedHeapUsedMb},${retainedExternalMb}\n`;
|
|
@@ -289,6 +342,15 @@ function doWork() {
|
|
|
289
342
|
// the ones given `--perf`. That gate is why the argv unpacking
|
|
290
343
|
// above had to move ahead of this line.
|
|
291
344
|
const memoryBaseline = await settleAndSampleMemoryForPerf(perfPath);
|
|
345
|
+
// `totalTimeMs` starts HERE, not at parseStartMs (conway#562).
|
|
346
|
+
// What sat between the two is a file read, a ParsingBuffer and a
|
|
347
|
+
// header parse — real cost of loading the model that the stage
|
|
348
|
+
// clocks could not see, and that a reader takes "Total" to
|
|
349
|
+
// include. Deliberately after the settle: the retention samples
|
|
350
|
+
// are outside the timed region by design (see
|
|
351
|
+
// design/new/perf-measurement.md), and folding two forced
|
|
352
|
+
// collections into the load's wall clock would undo that.
|
|
353
|
+
const loadStartMs = Date.now();
|
|
292
354
|
try {
|
|
293
355
|
indexIfcBuffer = fs.readFileSync(ifcFile);
|
|
294
356
|
}
|
|
@@ -344,7 +406,7 @@ function doWork() {
|
|
|
344
406
|
const parseEndMs = Date.now();
|
|
345
407
|
const parseTimeMs = parseEndMs - parseStartMs;
|
|
346
408
|
if (model === void 0) {
|
|
347
|
-
await writePerfCsvIfRequested(perfPath, ifcFile, "FAIL", parseTimeMs, 0, parseTimeMs);
|
|
409
|
+
await writePerfCsvIfRequested(perfPath, ifcFile, "FAIL", parseTimeMs, 0, Date.now() - loadStartMs, parseTimeMs);
|
|
348
410
|
return;
|
|
349
411
|
}
|
|
350
412
|
model.nullOnErrors = !strict;
|
|
@@ -352,7 +414,11 @@ function doWork() {
|
|
|
352
414
|
const scene = geometryExtraction(model);
|
|
353
415
|
const geomEndMs = Date.now();
|
|
354
416
|
const geometryTimeMs = geomEndMs - geomStartMs;
|
|
355
|
-
|
|
417
|
+
// The sum the `totalTimeMs` column used to hold. `geomStartMs` is
|
|
418
|
+
// taken on the line after `parseEndMs`, so this IS
|
|
419
|
+
// parseTimeMs + geometryTimeMs — the identity is now visible in
|
|
420
|
+
// the name instead of being a coincidence a reader has to derive.
|
|
421
|
+
const parsePlusGeometryMs = geomEndMs - parseStartMs;
|
|
356
422
|
const perfStatus = scene === void 0 ? "FAIL" : "OK";
|
|
357
423
|
// Sized before anything downstream can release meshes, and only on
|
|
358
424
|
// the OK path: a failed extraction leaves a partial cache whose size
|
|
@@ -392,11 +458,15 @@ function doWork() {
|
|
|
392
458
|
// different paths to the blessed output. One path, verified
|
|
393
459
|
// byte-identical, is worth more than the work it costs.
|
|
394
460
|
model.invalidate(true);
|
|
461
|
+
// The load's wall clock closes on the teardown, not on the last
|
|
462
|
+
// stage clock, and before the retained settle so those two forced
|
|
463
|
+
// collections stay outside every timed column.
|
|
464
|
+
const totalTimeMs = Date.now() - loadStartMs;
|
|
395
465
|
// Both sides come back undefined on a run with no `--perf`, so
|
|
396
466
|
// `retained` stays unset and the row would read N/A — except no row
|
|
397
467
|
// is written at all in that case.
|
|
398
468
|
memory.retained = retainedMemoryMb(memoryBaseline, await settleAndSampleMemoryForPerf(perfPath));
|
|
399
|
-
await writePerfCsvIfRequested(perfPath, ifcFile, perfStatus, parseTimeMs, geometryTimeMs, totalTimeMs, memory);
|
|
469
|
+
await writePerfCsvIfRequested(perfPath, ifcFile, perfStatus, parseTimeMs, geometryTimeMs, totalTimeMs, parsePlusGeometryMs, memory);
|
|
400
470
|
// AFTP sizing pass: no-op unless the wasm module was built with
|
|
401
471
|
// CONWAY_ALLOC_TELEMETRY (see conway-geom structures/alloc_telemetry.h).
|
|
402
472
|
conwayGeom.dumpAllocTelemetry(path.basename(ifcFile));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conway_model_loader.d.ts","sourceRoot":"","sources":["../../../src/loaders/conway_model_loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAkFrC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAE7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAE,IAAI,EAAE,SAAS,KAAM,IAAI,CAAA;CAC1C;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAE5B;;;;;;;;;OASG;WACiB,kBAAkB,CAClC,IAAI,EAAE,UAAU,EAChB,aAAa,GAAE,OAAc,EAC7B,eAAe,GAAE,MAAW,EAC5B,OAAO,GAAE,MAAU,EACnB,OAAO,CAAC,EAAE,gBAAgB,GAAI,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"conway_model_loader.d.ts","sourceRoot":"","sources":["../../../src/loaders/conway_model_loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAkFrC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAE7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAE,IAAI,EAAE,SAAS,KAAM,IAAI,CAAA;CAC1C;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAE5B;;;;;;;;;OASG;WACiB,kBAAkB,CAClC,IAAI,EAAE,UAAU,EAChB,aAAa,GAAE,OAAc,EAC7B,eAAe,GAAE,MAAW,EAC5B,OAAO,GAAE,MAAU,EACnB,OAAO,CAAC,EAAE,gBAAgB,GAAI,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CA8e1D"}
|
|
@@ -212,6 +212,10 @@ export class ConwayModelLoader {
|
|
|
212
212
|
if (statistics !== void 0) {
|
|
213
213
|
const dataParseTime = parseDataTimeEnd - parseDataTimeStart;
|
|
214
214
|
statistics.setLoadStatus("OK");
|
|
215
|
+
// conway#555: this path brings up a ConwayGeometry per load and
|
|
216
|
+
// runs at the default OPTIMAL memoization capture, so its
|
|
217
|
+
// memory columns are not comparable with a regression child's.
|
|
218
|
+
statistics.setWriter("loader");
|
|
215
219
|
statistics.setParseTime(dataParseTime);
|
|
216
220
|
statistics.setTotalTime(allTime);
|
|
217
221
|
let FILE_NAME = stepHeader.headers.get("FILE_NAME");
|
|
@@ -351,6 +355,10 @@ export class ConwayModelLoader {
|
|
|
351
355
|
if (statistics !== void 0) {
|
|
352
356
|
const dataParseTime = parseDataTimeEnd - parseDataTimeStart;
|
|
353
357
|
statistics.setLoadStatus("OK");
|
|
358
|
+
// conway#555: this path brings up a ConwayGeometry per load and
|
|
359
|
+
// runs at the default OPTIMAL memoization capture, so its
|
|
360
|
+
// memory columns are not comparable with a regression child's.
|
|
361
|
+
statistics.setWriter("loader");
|
|
354
362
|
statistics.setParseTime(dataParseTime);
|
|
355
363
|
statistics.setTotalTime(allTime);
|
|
356
364
|
let FILE_NAME = stepHeader.headers.get("FILE_NAME");
|