Canvas Feature QEMU Code Size Report¶
Commit:
1fe189ebDate: 2026-05-21T16:05:55.973403
Build target:
APP=HelloSizeAnalysis APP_SUB=canvas_path_probe PORT=qemu CPU_ARCH=cortex-m0plusMeasurement method: compile a dedicated probe app, then rewrite app-local feature override + probe config headers to enable one feature set.
Scope: feature-level static qemu ELF sections only (
.text/.rodata/.data/.bss).
说明¶
这份报告解决的是“整项能力值不值得开”的问题,不是单个函数的边际成本。
baseline 明确关闭
MASK/QOI/RLE这类有总开关的 feature,再与 feature-on 变体比较。对于没有全局开关的能力,例如
IMAGE_TRANSFORM、TEXT_TRANSFORM、GRADIENT,这里仍使用 probe 聚合场景代表该 feature 的总体成本。HQ line/circle/arc 不在这份报告里,仍请看
hq_size_report.md。
Baseline¶
Variant |
Text |
Rodata |
Data |
Bss |
Total ROM |
|---|---|---|---|---|---|
BASELINE |
14532 |
596 |
1368 |
6368 |
15128 |
Feature Summary¶
Feature |
Delta Text |
Delta Rodata |
Delta Data |
Delta Bss |
Delta ROM |
|---|---|---|---|---|---|
BASIC_GEOMETRY |
+13436 |
+724 |
+0 |
+4 |
+14160 |
CIRCLE_ARC_BASIC |
+13716 |
+1844 |
+0 |
+4 |
+15560 |
LINE_FAMILY |
+4540 |
+12 |
+0 |
+4 |
+4552 |
GRADIENT_FEATURE |
+13076 |
+804 |
+0 |
+4 |
+13880 |
MASK_FEATURE |
+25228 |
+928 |
+0 |
+12 |
+26156 |
IMAGE_STD_FEATURE |
+10772 |
+108 |
+0 |
+12 |
+10880 |
IMAGE_TRANSFORM |
+16164 |
+476 |
+0 |
+12 |
+16640 |
TEXT_TRANSFORM |
+21008 |
+6432 |
+0 |
+12 |
+27440 |
RLE_CODEC |
+6900 |
+152 |
+0 |
+48 |
+7052 |
QOI_CODEC |
+8600 |
+148 |
+0 |
+1244 |
+8748 |
ALL_COMMON_CANVAS_FEATURES |
+115692 |
+8420 |
+0 |
+1280 |
+124112 |
Feature Definition¶
Feature |
Included Scenes |
Description |
|---|---|---|
BASIC_GEOMETRY |
|
Basic geometry paths for rect, round-rect and triangle, excluding circle and arc. |
CIRCLE_ARC_BASIC |
|
Basic circle and arc feature set, including LUT-related dependency cost. |
LINE_FAMILY |
|
Basic line and polyline feature set. |
GRADIENT_FEATURE |
|
Shape gradient feature set. |
MASK_FEATURE |
|
Mask feature set measured with circle, round-rect and image mask representative scenes. |
IMAGE_STD_FEATURE |
|
Standard image draw, resize and tint feature set. |
IMAGE_TRANSFORM |
|
Image transform and rotation feature. |
TEXT_TRANSFORM |
|
Text transform and rotation feature. |
RLE_CODEC |
|
RLE codec enabled, plus one representative draw path to reflect full linked cost. |
QOI_CODEC |
|
QOI codec enabled, plus one representative draw path to reflect full linked cost. |
ALL_COMMON_CANVAS_FEATURES |
|
All common non-HQ canvas features enabled together. |
Detailed Variants¶
Variant |
Feature Config |
Text |
Rodata |
Data |
Bss |
Total ROM |
|---|---|---|---|---|---|---|
BASELINE |
|
14532 |
596 |
1368 |
6368 |
15128 |
BASIC_GEOMETRY |
|
27968 |
1320 |
1368 |
6372 |
29288 |
CIRCLE_ARC_BASIC |
|
28248 |
2440 |
1368 |
6372 |
30688 |
LINE_FAMILY |
|
19072 |
608 |
1368 |
6372 |
19680 |
GRADIENT_FEATURE |
|
27608 |
1400 |
1368 |
6372 |
29008 |
MASK_FEATURE |
|
39760 |
1524 |
1368 |
6380 |
41284 |
IMAGE_STD_FEATURE |
|
25304 |
704 |
1368 |
6380 |
26008 |
IMAGE_TRANSFORM |
|
30696 |
1072 |
1368 |
6380 |
31768 |
TEXT_TRANSFORM |
|
35540 |
7028 |
1368 |
6380 |
42568 |
RLE_CODEC |
|
21432 |
748 |
1368 |
6416 |
22180 |
QOI_CODEC |
|
23132 |
744 |
1368 |
7612 |
23876 |
ALL_COMMON_CANVAS_FEATURES |
|
130224 |
9016 |
1368 |
7648 |
139240 |
Reproduce¶
python scripts/size_analysis/main.py canvas-feature-size-to-doc
Raw JSON is written to output/canvas_feature_size_results.json.