Canvas Path QEMU Code Size Report¶
Commit:
1fe189ebDate: 2026-05-21T16:04:33.734670
Build target:
APP=HelloSizeAnalysis APP_SUB=canvas_path_probe PORT=qemu CPU_ARCH=cortex-m0plusMeasurement method: compile a dedicated probe app, then rewrite the app-local probe config header to force-link a single canvas scene.
Scope: static qemu ELF sections only (
.text/.rodata/.data/.bss). No runtime heap/stack is measured here.
说明¶
这是“渲染场景引入成本”报告,不是业务应用最终成本报告。
各场景之间存在依赖与重叠,不能简单把增量直接相加。
Delta Text是主要代码体积指标;Delta ROM = Delta Text + Delta Rodata更适合作为 flash 成本口径。这份报告只覆盖普通 canvas/render path;HQ line/circle/arc 请结合
hq_size_report.md一起看。
Baseline¶
Variant |
Text |
Rodata |
Data |
Bss |
Total ROM |
|---|---|---|---|---|---|
BASELINE |
14652 |
596 |
1368 |
7600 |
15248 |
Increment Summary¶
Scene |
Delta Text |
Delta Rodata |
Delta Data |
Delta Bss |
Delta ROM |
|---|---|---|---|---|---|
RECT_STROKE |
+1012 |
+0 |
+0 |
+4 |
+1012 |
RECT_FILL |
+780 |
+0 |
+0 |
+4 |
+780 |
ROUND_RECT_STROKE |
+7136 |
+724 |
+0 |
+4 |
+7860 |
ROUND_RECT_FILL |
+3604 |
+724 |
+0 |
+4 |
+4328 |
TRIANGLE_STROKE |
+4140 |
+0 |
+0 |
+4 |
+4140 |
TRIANGLE_FILL |
+4184 |
+0 |
+0 |
+4 |
+4184 |
CIRCLE_BASIC_STROKE |
+6096 |
+724 |
+0 |
+4 |
+6820 |
CIRCLE_BASIC_FILL |
+3136 |
+724 |
+0 |
+4 |
+3860 |
ARC_BASIC_STROKE |
+12856 |
+1844 |
+0 |
+4 |
+14700 |
ARC_BASIC_FILL |
+6880 |
+1844 |
+0 |
+4 |
+8724 |
LINE |
+3984 |
+0 |
+0 |
+4 |
+3984 |
POLYLINE |
+4496 |
+12 |
+0 |
+4 |
+4508 |
GRADIENT_RECT |
+3188 |
+60 |
+0 |
+4 |
+3248 |
GRADIENT_ROUND_RECT |
+6844 |
+804 |
+0 |
+4 |
+7648 |
GRADIENT_CIRCLE |
+5120 |
+60 |
+0 |
+4 |
+5180 |
MASK_CIRCLE |
+8 |
+0 |
+0 |
+4 |
+8 |
MASK_ROUND_RECT |
+8 |
+0 |
+0 |
+4 |
+8 |
MASK_IMAGE |
+8 |
+0 |
+0 |
+4 |
+8 |
IMAGE_DRAW |
+10540 |
+108 |
+0 |
+12 |
+10648 |
IMAGE_RESIZE |
+10588 |
+108 |
+0 |
+12 |
+10696 |
IMAGE_TINT |
+10600 |
+108 |
+0 |
+12 |
+10708 |
IMAGE_ROTATE |
+16164 |
+476 |
+0 |
+12 |
+16640 |
TEXT_ROTATE |
+21000 |
+6432 |
+0 |
+12 |
+27432 |
RLE_DRAW |
+8 |
+0 |
+0 |
+4 |
+8 |
QOI_DRAW |
+8480 |
+148 |
+0 |
+12 |
+8628 |
ALL_CANVAS_PATHS |
+74156 |
+8228 |
+0 |
+12 |
+82384 |
Scene Definition¶
Scene |
Representative Functions |
Description |
|---|---|---|
RECT_STROKE |
|
Rectangle stroke path. |
RECT_FILL |
|
Rectangle fill path. |
ROUND_RECT_STROKE |
|
Round-rectangle stroke path. |
ROUND_RECT_FILL |
|
Round-rectangle fill path. |
TRIANGLE_STROKE |
|
Triangle stroke path. |
TRIANGLE_FILL |
|
Triangle fill path. |
CIRCLE_BASIC_STROKE |
|
Basic circle stroke path. |
CIRCLE_BASIC_FILL |
|
Basic circle fill path, including circle LUT cost. |
ARC_BASIC_STROKE |
|
Basic arc stroke path. |
ARC_BASIC_FILL |
|
Basic arc fill path. |
LINE |
|
Basic line path. |
POLYLINE |
|
Basic polyline path. |
GRADIENT_RECT |
|
Gradient rectangle fill path. |
GRADIENT_ROUND_RECT |
|
Gradient round-rectangle fill path. |
GRADIENT_CIRCLE |
|
Gradient circle fill path. |
MASK_CIRCLE |
|
Circle mask scene. |
MASK_ROUND_RECT |
|
Round-rectangle mask scene. |
MASK_IMAGE |
|
Image mask scene. |
IMAGE_DRAW |
|
Standard image draw path. |
IMAGE_RESIZE |
|
Standard image resize path. |
IMAGE_TINT |
|
Standard image tint path. |
IMAGE_ROTATE |
|
Image rotation and transform scene. |
TEXT_ROTATE |
|
Rotated text draw scene. |
RLE_DRAW |
|
RLE codec draw path. |
QOI_DRAW |
|
QOI codec draw path. |
ALL_CANVAS_PATHS |
|
All representative canvas path probe scenes enabled together. |
Detailed Variants¶
Variant |
Probe Config |
Text |
Rodata |
Data |
Bss |
Total ROM |
|---|---|---|---|---|---|---|
BASELINE |
|
14652 |
596 |
1368 |
7600 |
15248 |
RECT_STROKE |
|
15664 |
596 |
1368 |
7604 |
16260 |
RECT_FILL |
|
15432 |
596 |
1368 |
7604 |
16028 |
ROUND_RECT_STROKE |
|
21788 |
1320 |
1368 |
7604 |
23108 |
ROUND_RECT_FILL |
|
18256 |
1320 |
1368 |
7604 |
19576 |
TRIANGLE_STROKE |
|
18792 |
596 |
1368 |
7604 |
19388 |
TRIANGLE_FILL |
|
18836 |
596 |
1368 |
7604 |
19432 |
CIRCLE_BASIC_STROKE |
|
20748 |
1320 |
1368 |
7604 |
22068 |
CIRCLE_BASIC_FILL |
|
17788 |
1320 |
1368 |
7604 |
19108 |
ARC_BASIC_STROKE |
|
27508 |
2440 |
1368 |
7604 |
29948 |
ARC_BASIC_FILL |
|
21532 |
2440 |
1368 |
7604 |
23972 |
LINE |
|
18636 |
596 |
1368 |
7604 |
19232 |
POLYLINE |
|
19148 |
608 |
1368 |
7604 |
19756 |
GRADIENT_RECT |
|
17840 |
656 |
1368 |
7604 |
18496 |
GRADIENT_ROUND_RECT |
|
21496 |
1400 |
1368 |
7604 |
22896 |
GRADIENT_CIRCLE |
|
19772 |
656 |
1368 |
7604 |
20428 |
MASK_CIRCLE |
|
14660 |
596 |
1368 |
7604 |
15256 |
MASK_ROUND_RECT |
|
14660 |
596 |
1368 |
7604 |
15256 |
MASK_IMAGE |
|
14660 |
596 |
1368 |
7604 |
15256 |
IMAGE_DRAW |
|
25192 |
704 |
1368 |
7612 |
25896 |
IMAGE_RESIZE |
|
25240 |
704 |
1368 |
7612 |
25944 |
IMAGE_TINT |
|
25252 |
704 |
1368 |
7612 |
25956 |
IMAGE_ROTATE |
|
30816 |
1072 |
1368 |
7612 |
31888 |
TEXT_ROTATE |
|
35652 |
7028 |
1368 |
7612 |
42680 |
RLE_DRAW |
|
14660 |
596 |
1368 |
7604 |
15256 |
QOI_DRAW |
|
23132 |
744 |
1368 |
7612 |
23876 |
ALL_CANVAS_PATHS |
|
88808 |
8824 |
1368 |
7612 |
97632 |
Reproduce¶
python scripts/size_analysis/main.py canvas-path-size-to-doc
Raw JSON is written to output/canvas_path_size_results.json.