Files
FreeCADWasmDev/docs/freecad-performance-budget.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

60 lines
2.9 KiB
JSON

{
"schema": "freecad-web-performance-budget/v1",
"sourceRevision": "4f4e9244e613ea2df06e70027074a562695048cb",
"inputs": {
"desktop": "FreeCAD/docs/freecad-performance-desktop.json",
"mobile": "FreeCAD/docs/freecad-performance-mobile.json",
"fixture": "FreeCAD/docs/freecad-performance-fixtures.json"
},
"thresholds": {
"startupMs": {"desktopMax": 1000, "mobileMax": 1500, "unit": "ms"},
"stepImportMs": {"desktopMax": 2000, "mobileMax": 3000, "unit": "ms"},
"resetMs": {"desktopMax": 250, "mobileMax": 500, "unit": "ms"},
"peakHeapDeltaBytes": {"max": 33554432, "unit": "bytes", "definition": "peak usedJSHeapSize minus initial usedJSHeapSize per replay"},
"postResetHeapDeltaBytes": {"max": 2097152, "unit": "bytes", "definition": "after-reset usedJSHeapSize minus initial usedJSHeapSize per replay; negative is acceptable"}
},
"measured": {
"desktop": {
"startupMs": {"min": 219.5, "max": 241.8, "median": 229.7, "result": "pass"},
"stepImportMs": {"min": 580.4, "max": 636.2, "median": 582.7, "result": "pass"},
"resetMs": {"min": 0.5, "max": 1.1, "median": 0.7, "result": "pass"},
"peakHeapDeltaBytes": {"max": 1158277, "result": "pass"},
"postResetHeapDeltaBytes": {"max": 1158277, "result": "pass"}
},
"mobileEmulation": {
"startupMs": {"min": 221.6, "max": 241.2, "median": 240.7, "result": "pass"},
"stepImportMs": {"min": 651.1, "max": 666.5, "median": 653.9, "result": "pass"},
"resetMs": {"min": 7.0, "max": 7.2, "median": 7.1, "result": "pass"},
"peakHeapDeltaBytes": {"max": 1198313, "result": "pass"},
"postResetHeapDeltaBytes": {"max": 1198313, "result": "pass"}
}
},
"sampleOutcomes": {
"STEP": "3/3 pass on desktop and mobile emulation; mesh 8376/2792/62",
"FCStd": "3/3 expected parser errors on each environment; importer remains pending",
"OBJ": "3/3 expected parser errors on each environment; mesh-file importer remains pending"
},
"pendingRisks": [
{
"id": "heap-baseline-growth",
"status": "pending",
"observation": "usedJSHeapSize baseline increased across repeated page reloads in one Chrome session; no forced GC API is available",
"impact": "this evidence cannot prove long-session reclamation beyond the per-run post-reset threshold"
},
{
"id": "cache-hit-not-observable",
"status": "pending",
"observation": "current sample path writes mesh cache after a load but does not read it before the next load",
"impact": "cache hit latency is excluded from this budget"
},
{
"id": "fcstd-and-mesh-import",
"status": "pending",
"observation": "FCStd and OBJ fixtures produce the fixed STEP-parser error in the current UI",
"impact": "no performance claim is made for those formats"
}
],
"result": "pass_for_measured_step_contract_with_explicit_pending_scope",
"blocked": false
}