Files
AtomUI/docs/performances
..

AtomUI 控件性能优化总览

本目录用于沉淀 AtomUI 控件性能优化的基线、方案、关键取舍和最终结果。

测试工具位于 tools/performances。

样式 selector 与代码状态机的性能边界见:style-vs-code-guidelines.md。

Avalonia 12 控件库研发的成本模型与高频踩雷点(含 path:line 引用)见:avalonia12-control-library-pitfalls.md。

按 Fan-In / Fan-Out 排序的 Desktop 控件优化任务路线图(含 ColorPicker、DataGrid 包)见:desktop-controls-optimization-roadmap.md。

目录规范

  • 每个控件或共享性能体系使用一个独立目录,目录名使用控件名的大小写写法,例如 AddOnDecoratedBox、LineEdit。
  • 控件目录内保留该控件自己的 README、长期复用的方案、基线、最终结果和复现命令;阶段中间记录应合并到 README 或最终结果文档。
  • 跨控件共享的基础设施可以单独成目录,例如 AddOnDecoratedBox。
  • Gallery 级页面实测放到最直接受影响的控件目录下,并在文档内说明是否包含 Gallery 上层成本。

入库规则

应进入版本控制:

  • 总览、guide、控件目录 README。
  • 控件级优化方案、关键设计取舍、优化前基线和最终结果的摘要。
  • 对应 ShowCase 加载时间优化对比、Gallery 真实场景的汇总结论和复现命令,统一汇总到控件 README。

不进入版本控制:

  • 单独的阶段计划、baseline、final、optimized 等中间 markdown 文件。
  • 阶段中间跑分输出。
  • 一次性评估草稿。
  • 可由工具重新生成的逐次 sample 原始输出。
  • /tmp worktree 中生成的 baseline 对照结果。

测试口径

口径 工具 用途 注意事项
控件级基准 tools/performances/AtomUI.Performance 单控件、小组合、批量实例化、专项行为验证 不代表 Gallery 页面打开体验
Gallery 场景复现 tools/performances/AtomUI.GalleryPerformance 真实 Workspace route、真实 showcase XAML、真实视觉树稳定耗时 必须证明源 XAML 和运行时控件形态一致

控件存在对应 Gallery ShowCase 时,控件 README 必须单独列出 ShowCase 加载时间优化对比,至少包含 cold first navigation、repeated mean、repeated median、repeated P95,并标明 cold sample count、warmup/iterations。Cold first navigation 必须使用独立进程多样本,不能用单样本声明提升。

当前文档

控件/体系 状态 目录 关键结果
AddOnDecoratedBox 本轮已完成 Primitives 默认 LineEdit visual/root 26 -> 20,KB/item 503.8 -> 398.4,默认 icon scan 360 -> 0;ContentFrame pointer handlers 4 -> 0 / instance;addon foreground/icon、inner geometry、pointer state unchanged writes 已收敛;addon icon brush descendant filter LINQ operators 1 -> 0;Select/TreeSelect/Cascader right-addon template 绑定已修复
AdornerLayer 本轮已完成结构生命周期优化 AdornerLayer ScopeAwareAdornerLayer attach/detach membership scan 1 -> 0;detach 后 adorner retained target refs 1 -> 0;layer lookup LINQ operators 3 -> 0,first inject scans 2 -> 1;Drawer 状态验证通过;timing smoke-only
Icon 本轮已完成 Icon IconShowCase repeated 193.31ms -> 173.36ms,alloc 57900.83KB -> 46331.65KB;generated metadata 与 transform literal 已同步 AntDesign/Material/IconPark;Select.Default 默认隐藏 slot 从 Icon/root 3 -> 1、Button/root 1 -> 0
LineEdit 本轮已完成 Gallery 实测 LineEdit LineEditShowCase 重复导航均值 229.07ms -> 183.98ms,提升 19.68%
Button 本轮已完成 Button loading/icon/wave 默认 slot 已按需创建;ButtonShowCase visuals 1128 -> 964,IconPresenter 92 -> 51,repeated mean 134.60ms -> 101.53ms
SplitButton 本轮已完成正确性与生命周期优化 SplitButton 修复 Flyout 重复事件注册、替换后旧 Flyout handler 残留和 secondary button 打开时 :flyout-open 不更新;状态验证失败 7 -> 0
ButtonSpinner 本轮已完成 ButtonSpinner HiddenHandle visuals 25 -> 10,KB/item 474.4 -> 212.5;ButtonSpinnerShowCase visuals 725 -> 681,alloc 14900.81KB -> 13514.36KB
Space 本轮已完成 Space CompactSpaceItem 93 -> 75,visuals 1864 -> 1846,SpaceShowCase repeated mean 165.32ms -> 150.48ms;real-children position temp list 1 -> 0;CompactSpace add/remove item filter LINQ operators 2 -> 0;普通 Space collection sync LINQ type-filter callsites 4 -> 0,mirrored remove target scans 2 -> 0;changed-offset transform allocation 1 -> 0 after first;CompactSpaceSize.Parse uppercase temp strings 1 -> 0,star substring/temp token strings 1 -> 0 / token
AutoComplete 本轮已完成 AutoComplete 关闭态 _candidateList 13 -> 0;AutoCompleteShowCase repeated mean 74.97ms -> 55.63ms,alloc 8143KB -> 7664.37KB;completion prefix substring allocations 2 -> 0
Avatar 本轮已完成 Avatar AvatarShowCase repeated mean 42.33ms -> 32.54ms,visuals 360 -> 258,alloc 7252.55KB -> 5824.01KB;AvatarGroup add/remove item filter LINQ operators 3 -> 0
Badge 本轮已完成 Badge hidden zero CountBadgeAdorner/root 1 -> 0,DotBadge 无文本 Label/root 1 -> 0;BadgeShowCase visuals 497 -> 485;Badge/Ribbon preset color match ToLower() 临时字符串 15 -> 0,trim temp strings 2 -> 0;Ribbon corner brush allocations / render 1 -> 0 after first;Badge scale transform allocations / show 3 -> 0
Breadcrumb 本轮已建立基线并修复 separator 传播 Breadcrumb 父级 Separator 变化现在同步到 direct/generated inherited items,local/data separator 继续胜出;BreadcrumbShowCase cold mean 92.98ms -> 87.53ms,repeated P95 36.72ms -> 34.00ms,repeated median 基本持平
Card 本轮已完成 Card CardShowCase repeated mean 78.11ms -> 50.66ms,visuals 784 -> 582;CardActionPanel 18 -> 3,Skeleton 18 -> 0;Card collection sync OfType<Control> callsites 6 -> 0,mirrored action remove target scans 2 -> 0,Tabs remove value lookups N -> 0,Tabs move 边界风险 1 -> 0
Carousel 本轮已完成 Carousel CarouselShowCase alloc 6113.86KB -> 5213.10KB,visuals 369 -> 326;nav 14 -> 4,progress 28 -> 1,transition 7 -> 0;indicator refresh list wrapper 1 -> 0,pagination pointer-release LINQ operators 1 -> 0,progress default easing allocations 1 -> 0,repeated mean 基本持平
Cascader 本轮已完成 Cascader filter/multiple closed visual 41/25 -> 20;CascaderShowCase visuals 1250 -> 1169,repeated mean 141.81ms -> 133.27ms;multi-select sync temp lists/hashsets exact capacity;OptionsSource Cast().ToList() iterator 1 -> 0 / sync,set diff Except iterators 2 -> 0 / sync;本轮补充 filter/path parse LINQ chains 2 -> 0、expand path root lookup 1 -> 0、default/selected path header list exact capacity、filter full-path cache root-count lower-bound capacity、filter full-path lists exact depth、full-path Reverse passes 2 -> 0、selected path Reverse passes 1 -> 0、expand path Reverse passes 1 -> 0、expand path node list exact depth、parent checked sets exact depth、child existence LINQ calls 10 -> 0、parent checkbox child scans 3 -> 1 / ancestor、effective tag parent-candidate scans P -> 0、empty effective tag list allocations 1 -> 0、checked/unchecked subtree result HashSet allocations N -> 1、checked sync fallback empty HashSet allocations 2 -> 0、default path list wrapper 1 -> 0、read-only option source exact capacity
CheckBox 本轮已完成 CheckBox 默认 unchecked visuals 12 -> 8,contentless unchecked 11 -> 6,CheckBoxShowCase visuals 420 -> 318,repeated alloc 6385.60KB -> 4629.80KB
ColorPicker 本轮已完成结构生命周期、palette 选择隔离和打开态 brush 复用优化 ColorPicker closed Window.Deactivated 订阅 23 -> 0;preview/thumb brush allocations per HsvValue update 3 -> 0;透明背景同 token brush refs / 1000 builds 1000 -> 1,allocation 10569.1 -> 0.2 bytes/update;ColorPickerPaletteGroup global class handler 1/group -> 0/group,修复跨 group 选择误通知;Gradient stop/thumb sort LINQ chains 3 -> 0;ColorBlock background same-color brush allocations 1 -> 0;active thumb fallback LINQ enumerators 1 -> 0;ColorSpectrum empty HSV cache list allocations 1 -> 0 / instance,arrow-key HasFlag calls 1 -> 0;GradientColorPicker excess text-run Last() calls 1 -> 0 / removed run;removed-thumb/default-palette list exact capacity;页面 timing 噪声内
Collapse 本轮已完成 Collapse CollapseShowCase repeated mean 119.31ms -> 100.18ms,visuals 616 -> 553;content motion 33 -> 1,addon presenter 33 -> 3;pointer-release hit-test LINQ operators 1 -> 0;item motion default easing allocations 1 -> 0 / expand-or-collapse
ComboBox 本轮已完成 ComboBox ComboBoxShowCase repeated mean 109.35ms -> 91.07ms,alloc 11384.83KB -> 9534.28KB,visuals 562 -> 497;默认 Button/IconButton 23 -> 0;ComboBoxHandle anonymous click handler 1 -> 0,re-template retained handler risk 1 -> 0
DatePicker 本轮已完成 DatePicker closed route PickerHost 30 -> 0,visuals 1570 -> 1540,alloc 30959.16KB -> 29762.89KB,长样本 repeated mean 174.77ms -> 154.21ms;CalendarView blackout-date Any(predicate) 1 -> 0;DatePickerPresenter re-template retained handlers 14 -> 0;RangeDatePicker pick-state HasFlag callsites 3 -> 0
Descriptions 本轮已完成 Descriptions DescriptionsShowCase repeated mean 75.84ms -> 68.64ms,visuals 579 -> 571;GalleryShape.Batch8 25.139ms/root -> 24.486ms/root;add/remove/apply/layout temp lists 1 -> 0;collection changed item filter LINQ operators 2 -> 0;ItemsSource import LINQ operators 1 -> 0,IList source enumerators 1 -> 0,read-only typed source upper-bound capacity;MediaBreakInfo single-value trim temp strings 1 -> 0;修复 headless dynamic add ColumnSpan=0、dynamic insert/remove generated child index、Reset clear、Items replacement subscription、binding/collection/window 订阅生命周期风险
Dialog / MessageBox 本轮已完成结构与生命周期优化 Dialog MessageBox closed Dialog/root 1 -> 0,ModalShowCase visuals 324 -> 317,Dialog runtime 14 -> 7;修复 RelayBind、mask binding、resizer 和 ButtonBox 父级生命周期风险;ButtonBox 缺省角色列表 fallback allocations 14 -> 0,group/sync lists exact capacity;DialogButtonBox CustomButtons sync LINQ operators 2 -> 0,custom add/remove enumerators 2 -> 0,button-role dictionary lookups 2 -> 1 / update,role group first-add list capacity dynamic -> 1,role dictionary initial capacity dynamic -> 10 roles;DialogStandardButtons parser converter allocations 1 -> 0 after type init,standard button flag checks bitwise 化;Dialog resize handle HasFlag callsites 4 -> 0;Dialog host CustomButtons propagation OfType callsites 8 -> 0;MessageBox CustomButtons sync OfType callsites 2 -> 0
DropdownButton 本轮已完成生命周期优化 DropdownButton detached MenuItemClicked handlers 1 -> 0,detached flyout bindings 8 -> 0,detach 后残留 handler 1 -> 0
Expander 本轮已完成 Expander closed content motion actor 按需创建;ExpanderShowCase cold mean 191.70ms -> 170.47ms,repeated mean 82.18ms -> 67.30ms,visuals 391 -> 360,MotionActor 16 -> 1;expand button anonymous click handler 1 -> 0,re-template retained handler risk 1 -> 0;content motion default easing allocations 1 -> 0 / expand-or-collapse
Empty 本轮已完成低风险修复 Empty 修复 IsDescriptionVisible=False、图片来源运行时互斥和 Svg.Source/Path 残留;EmptyShowCase repeated mean 21.90ms -> 21.32ms,alloc 2269.73KB -> 2253.90KB,visuals 不变
FloatButton 本轮已完成 FloatButton closed trigger group visual/root 41 -> 14;FloatButtonShowCase repeated mean 126.71ms -> 110.81ms,visuals 949 -> 752,alloc 14447.92KB -> 12182.94KB;square group arrange visible-children temp list 1 -> 0;0/1 visible child line list 1 -> 0;collection sync OfType<Control> callsites 6 -> 0,group add source scans 2 -> 1,mirrored remove target scans 3 -> 0;menu motion default easing allocations 1 -> 0 / show-or-hide
FlexPanel 本轮已完成 parser structural-only;布局候选已撤回 FlexPanel 新增 5 个控件级场景和 4 个状态校验;生产布局候选因 Wrap/GrowShrink/ColumnWrap timing smoke 回归已撤回;FlexBasis.Parse uppercase temp strings 1 -> 0,percent trim temp strings 1 -> 0
Grid 本轮已完成正确性修复与结构优化 Grid 修复 Row cached child layout 在 Col.Span/Order 与 IsVisible 变化后的 stale 问题;same-width measure→arrange BuildLayout 调用 2 -> 1;GridColSize.ConvertTo parts temp list 1 -> 0;Row alignment converter lowercase temp strings 2 -> 0、trim temp strings 2 -> 0;GridColSize parse split arrays 1 -> 0、segment/key/value trim strings 3 -> 0 / segment;GridGutter split arrays 2 -> 0、segment trim temp strings 1 -> 0
Form 本轮已完成低风险结构与生命周期优化 Form Form.GalleryShape 92.094ms/item -> 89.364ms/item,visual/root 1544 -> 1508;FormShowCase visuals 6435 -> 6300,alloc 少 3.54%,页面 repeated 耗时基本持平;validate tasks/messages exact upper-bound capacity,results list allocations 1 -> 0,error check LINQ operators 1 -> 0;Items collection anonymous handler 1 -> 0;warning inline Last() calls 1 -> 0 / warning message
GroupBox 本轮已完成 GroupBox 默认无 HeaderIcon 不再创建 header icon presenter;GroupBox.GalleryShape visual/root 104 -> 96,GroupBoxShowCase visuals 151 -> 143,repeated mean 27.79ms -> 26.16ms;header mask fallback brush allocations per render 1 -> 0
ImagePreviewer 本轮已完成 ImagePreviewer 单图关闭态不再提前创建完整预览 source list,3-image closed dialog sources 3 -> 0,closed live preview sources 3 -> 1;--verify-imagepreviewer-states 已通过;ImagePreviewerShowCase cold mean 180.28ms -> 147.48ms,repeated mean 33.56ms -> 30.61ms;fallback source list 1 list -> 1 fixed array,ItemsSource load list exact capacity;SVG extension lowercase temp strings 1 -> 0 / source path check;cover fallback first-source LINQ enumerators 2 -> 0;empty ItemsSource stale effective-source / cover-image risk 1 -> 0,clear CoverImageSrc fallback misses 1 -> 0,old source releases 0 -> N,empty effective-source list allocations 1 -> 0
InfoFlyout 本轮已完成正确性与生命周期优化 InfoFlyout 关闭态 Popup shell 1 -> 0,Flyout=null 后 host-to-flyout bindings 13 -> 0,Flyouts.GalleryShape closed Popup shells 12/29 -> 0/29
Input 本轮已完成结构优化 Input TextBox.Default visual/root 21 -> 13、KB/item 332.6 -> 236.7;TextArea.Default visual/root 24 -> 21;LineEditShowCase visuals 2307 -> 2284,repeated mean 基本持平
ListView 本轮已完成 ListView ListView.Grouped 3.619ms/item -> 1.759ms/item,FilterActive 3.421ms/item -> 1.841ms/item;ListShowCase repeated mean 80.72ms -> 77.34ms;select-all hotkey LINQ operators 1 -> 0;selection snapshot ToArray() callsites 6 -> 0;ListBox filter HasFlag callsites 2 -> 0;ListView Shift HasFlag callsites 1 -> 0
MarqueeLabel / Alert 本轮已完成 MarqueeLabel Alert 默认路径不再创建隐藏 MarqueeLabel;AlertShowCase runtime MarqueeLabel 25 -> 1,visuals 585 -> 561,repeated mean 65.42ms -> 54.67ms
Mentions 本轮已完成 Mentions closed popup content 已按需创建;MentionsShowCase _candidateList 15 -> 0,repeated mean 110.05ms -> 106.95ms,alloc 10115.79KB -> 9326.47KB;OptionsSource cache list exact capacity,read-only OptionsSource exact capacity;filtered view first selected lookup 1 -> 0;trigger-prefix temp strings 1 -> 0 / scanned char,insert previous-char compare temp strings 2 -> 0
Menu 本轮已完成 Menu closed leaf MenuItem visual/root 13 -> 9,KB/item 209.8 -> 122.1;MenuShowCase Menu-only phase repeated mean 91.16ms -> 89.10ms,严格 NavMenu shape 见 NavMenu 文档;MenuItem child filter LINQ operators 1 -> 0 / children enumeration
NavMenu 本轮已完成 NavMenu 修复 prepared node binding 生命周期和默认路径遍历;MenuShowCase 严格完整形态 repeated mean 162.76ms -> 99.13ms,cold mean 416.22ms -> 351.72ms;horizontal active indicator repeated scale update transform allocation 1 -> 0;path traversal lists exact capacity;selected/default path Reverse passes 2 -> 0;submenu interaction LINQ operators 4 -> 0;internal SubItems enumerable calls 7 -> 0;public SubItems LINQ operators 2 -> 0;default path root lookup 1 -> 0;selected/default path lists exact parent depth;selected path ToHashSet calls 3 -> 0,Except operators 2 -> 0;first select old-path empty HashSet allocations 2 -> 0
Message 本轮已完成 Message WindowMessageManager 只在首次实际 show 时创建;timer/event/OnClose 生命周期已释放;MessageShowCase repeated mean 30.97ms -> 28.52ms,cold mean 109.07ms -> 98.86ms;excess visible messages temp list 1 -> 0
MessageBox 本轮已完成 MessageBox 同生命周期 binding 改为 [!],loading skeleton 按需创建并验证释放;ModalShowCase repeated mean 34.53ms -> 32.11ms,P95 37.18ms -> 34.42ms;CustomButtons sync OfType<DialogButton> callsites 2 -> 0
Notification 本轮已完成 Notification manager/card 生命周期补齐,manager/progress bar 按需创建;NotificationShowCase cold mean 176.82ms -> 155.20ms,repeated mean 37.46ms -> 29.13ms;progress visibility converter temp list 1 -> 0;cleanup queue/set exact default capacity
NumericUpDown 本轮已完成 NumericUpDown 默认 right accessory 按需创建;NumberUpDownShowCase visuals 1351 -> 1269,Button/IconButton 90 -> 60,cold mean 480.45ms -> 427.73ms;clear button anonymous click handler 1 -> 0,re-template retained handler risk 1 -> 0
OptionButtonGroup 本轮已完成 OptionButtonGroup 文本按钮默认不创建 IconPresenter/Wave;RadioButtonShowCase visuals 794 -> 689,repeated mean 100.85ms -> 84.72ms
Pagination 本轮已完成 Pagination 页码项 icon/content slot 按需创建;PaginationShowCase visuals 1262 -> 1065,IconPresenter 120 -> 51,repeated mean 168.92ms -> 131.76ms;nav item pointer-release LINQ operators 1 -> 0;anonymous click handler callsites 2 -> 0,duplicate/clear handler risk 1 -> 0,realized-container count LINQ calls 1 -> 0;disabled feature retained controls 2 -> 0,QuickJumperBar LineEdit detach handler 1 -> 0;quick jump input trim temp strings 3 -> 0,digit-check LINQ operators 1 -> 0
PopupConfirm 本轮已完成正确性与生命周期优化 PopupConfirm container 本地 Click handlers 2 -> 0,隐藏 cancel direct-click side effects 2 -> 0;Container.* KB/item 小幅下降,页面 timing 仅 smoke-only、不作为本轮收益证明
Primitives / InfoPickerInput + AddOnDecoratedBox + CandidateList 本轮已完成正确性、生命周期与交互结构优化 Primitives PickerClearUpButton 本地 Click handlers 1 -> 0,AddOnDecoratedBox ContentFrame pointer handlers 4 -> 0 / instance;CandidateList.Items20 键盘候选移动 container checks 20 -> <=2,max-count enable writes 20 -> 0,空列表 invalid candidate writes 1 -> 0,clear-state writes 3 -> 0,single-mode HasFlag callsites 2 -> 0;TreeNodePath 派生操作 arrays 2 -> 1,path-string split/copy arrays 2 -> 1,WithSegment() LINQ copy 1 -> 0,append CopyTo dispatch 2 -> 0,部分 fast path 1 -> 0,same-instance comparisons N -> 0;MotionGhostControl repeated shadow writes 已收敛,shadow renderer list exact capacity;ArrowDecoratedBox repeated arrow writes 已收敛;WaveSpiritDecorator painter configure easing allocations 2 -> 0,fallback easing allocations 1 -> 0;PenUtils repeated immutable pen allocations 1 -> 0、dashed pen allocations 2 -> 0;OptionButtonGroup / FloatButtonSeparatorLayer / ButtonSpinnerHandle / CardActionPanel / TextAreaDecoratedBox / CascaderViewFrame / SliderThumb / SliderTrack / MenuSeparator / CircleProgress / DashboardProgress repeated render Pen allocations 1-3 -> 0 after first;DateTimeUtils widest datetime calculation enumerable/array allocations 3 -> 0;BorderRenderHelper dash mode cache stale risk 1 -> 0;CompactSpaceItem repeated transform allocation 1 -> 0 after first,stale transform 1 -> 0,CompactSpace add/remove item filter LINQ operators 2 -> 0;SliderTrack marks、ListBox/ListView/Cascader virtualizing context、ProgressBar/Tag 小型表按已知容量预分配;RangeInfoPickerInput unchanged indicator writes 6 -> 0;InfoPickerInput / TextBox / TextArea / ButtonSpinner / NumericUpDown / AbstractSelect open/close、clear、arrow、validation、compact-space、form-feedback unchanged writes 1 -> 0;popup overlay manager fallback LINQ operators 2 -> 0;ScopeAwareOverlayLayer direct child lookup LINQ operators 1 -> 0;addon icon brush descendant filter LINQ operators 1 -> 0;页面 timing 不作为本轮收益证明
QRCode 本轮已完成 QRCode 默认 Active visual/root 19 -> 7,QRCodeShowCase repeated mean 125.12ms -> 91.58ms,visuals 436 -> 307
RadioButton 本轮已完成 RadioButton RadioIndicator wave 按需创建;RadioButtonShowCase visuals 689 -> 668,Wave 22 -> 1,repeated P95 184.13ms -> 164.47ms;checked sync OfType LINQ operators 1 -> 0,stale checked clear 已修复;group first-add list capacity dynamic -> 1
Rate 本轮已完成 Rate Rate.GalleryShape 15.846ms/item -> 10.354ms/item;RateShowCase repeated mean 62.75ms -> 55.87ms,visuals 376 -> 331;string first lookup LINQ calls 1 -> 0
Result 本轮已完成 Result 普通状态/错误码视觉按需创建;ResultShowCase repeated mean 74.01ms -> 67.19ms,Svg 8 -> 3,visuals 265 -> 257
ScrollViewer 本轮已完成基线与低风险正确性修复 ScrollViewer 修复 overlay host selector 与 motion owner;FloatButtonShowCase 页面级 timing 基本中性,后续优化需更强收益证明
Skeleton 本轮已完成结构生命周期与正确性修复 Skeleton 修复重复 class handler 导致的 logical children 异常;inactive animation 延迟创建;Content.NotLoading logical/root 902.5 -> 4.0,KB/item 172.3 -> 129.9;paragraph last-line Last() calls 1 -> 0 / width update
Slider 本轮已完成 Slider 普通 Slider 不再预创建 PART_EndThumb;SliderShowCase repeated mean 46.31ms -> 33.78ms,visuals 111 -> 105
SplitView 本轮已完成结构生命周期优化 SplitView 初始 closed/open 不再 materialize pane transition;典型场景 KB/item 约下降 ~1KB,runtime open/close transition 行为保留
Spin 本轮已完成结构生命周期与正确性修复 Spin hidden SpinIndicator 不再提前构造 animation;非 spinning KB/item 78.8 -> 77.4,GalleryShape KB/item 575.1 -> 564.2;motion 参数变化后动画重建
Splitter 本轮已完成 Gallery 实测 + runtime structural Splitter hidden collapse icon 不再构造/保留 PathIcon,lazy preview transform 复用;动态 children add temp objects 3 -> 1,remove temp objects 2 -> 0,remove target scans 1 -> 0,panel refresh temp objects 2 -> 0,resize event sizes temp objects 3 -> 1;panel size compute temp lists 2 -> 0;collapsible parser trim temp strings 1 -> 0;SplitterShowCase repeated mean 36.91ms -> 34.66ms,P95 51.79ms -> 40.43ms,alloc 5770.31KB -> 5659.40KB
Statistic 本轮已完成正确性与生命周期优化 Statistic generated Content ownership、StatisticCountUp.DataContext 清理、TimerStatistic attach-gated timer 释放;StatisticShowCase repeated alloc 7471.87KB -> 7228.74KB,visuals 387 -> 384
Switch 本轮已完成交互路径结构优化 Switch IsChecked 切换不再触发 measure invalidation;1000 次切换 measure invalidations 1000 -> 0,arrange 保持 1000,页面加载指标中性/噪声内
Timeline 本轮已完成结构与正确性修复 Timeline TimelineIndicator.Render Pen 缓存;修复 pending item 清空和默认/custom icon 显示;页面级 timing 未证明收益,pending spinner 正确显示带来 +2 visuals
TextBlock 本轮已完成 TextBlock HighlightableTextBlock 段级 Run 重写:Match.Medium 3.306ms→0.426ms (-87%)、355.8KB→44.0KB (-88%)、logical 56→4;SelectableTextBlock token binding+Cursor 移到 Theme Setter;无命中高亮 ranges list 1 -> 0;命中 ranges list 初始容量 0 -> 1;highlight strategy HasFlag callsites 3 -> 0;SelectableTextBlock Shift HasFlag callsites 1 -> 0;本轮补充 hotkey/hit-test LINQ predicates 3 -> 0
Popup 本轮已完成 Popup Popup 4 条构造器 token binding 迁到 ControlTheme(fan-in 19 → ~76 条订阅消除 + Tier 1 §7 同优先级碰撞修复);构造路径 0.154ms→0.107ms (-31%)、23.4KB→21.9KB (-6%);ShadowsAwareContainer 影子 Border 延迟到 HasBoxShadow;PopupRoot flip fallback LINQ calls 1 -> 0
Tag 本轮已完成 Tag AbstractTag.SetupDefaultCloseIcon 门控到 IsClosable=true;非 closable Tag 各 scenario 减少 ~2 KB/instance;Gallery 76 实例 × ~70 非 closable ≈ 140 KB 加载分配下降;Tag color name ToLower() 临时字符串 19 -> 0,trim/custom parse strings 2 -> 0
Transfer 本轮已完成 Gallery 实测 + structural Transfer TargetKeys membership lookup 改为每次刷新复用 HashSet,空 target panel 直接短路;TreeTransfer target 递归结果列表从 N -> 1;本轮补充 key list Select().ToList() materialization 6 -> 0、selected-items sync LINQ chain 1 -> 0、filter LINQ operators 12 -> 0、filter ToArray() 4 -> 0、source/target flag HasFlag callsites 6 -> 0;TransferListView selection changed arrays 2 -> 0,SelectedItems collection changed enumerators 2 -> 0,empty selected-keys source scans N -> 0,tree root snapshot lists 1 -> 0、null target result lists 1 -> 0,selection model equality LINQ chains 1 -> 0、old-selection snapshot arrays 1 -> 0,read-only panel / key / tree-list sources exact capacity;TransferShowCase repeated mean 242.72ms -> 222.12ms,cold mean 855.88ms -> 768.42ms,visuals/logical 不变
TreeView 本轮已完成 Gallery 实测 + render/interaction structural TreeView NodeSwitcherButton 模板 5 个图标 presenter 收敛到 1 个;TreeViewShowCase visuals 2108 -> 1646、IconPresenter 332 -> 112、repeated mean 332.44ms -> 213.41ms;连接线 repeated render Pen allocations 1-2 -> 0 after first,拖拽 indicator render frame 1 -> 0 after first;checkbox parent aggregation child scans 2 -> 1;filter highlighter Run objects 16 -> 3 / 16 -> 1;filter item-header strategy HasFlag callsites 3 -> 0;filter/form flag HasFlag callsites 11 -> 0;filter selection / checkbox parent HashSet exact parent depth;item path Reverse passes 1 -> 0,path / traversal / checked reset lists exact capacity;subtree checked/unchecked result sets exact realized subtree + parent depth;TreeViewItem child node filter LINQ operators 1 -> 0,collection changed item enumerators 4 -> 0
TreeSelect 本轮已完成 Gallery 实测 + structural TreeSelect 共享 SelectHandle 三套 indicator 收敛到单 presenter;TreeSelectShowCase visuals 909 -> 858、IconPresenter 38 -> 21、repeated mean 124.72ms -> 108.95ms、alloc 19996.64KB -> 18118.79KB;本轮补充选择同步/effective tags LINQ chains 20 -> 0,effective tag parent-candidate scans P -> 0,checked strategy HasFlag callsites 2 -> 0,empty effective tag list allocations 1 -> 0,tag close list exact capacity,read-only ItemsSource / selected / checked source exact capacity
TimePicker 本轮已完成 Gallery 实测 TimePicker InfoPickerInput closed presenter 延迟到首次打开;TimePickerShowCase cold mean 464.82ms -> 393.11ms,repeated mean 148.79ms -> 138.48ms;increment correction temp list/enumerable 1 -> 0;datetime preferred-width sweep temp enumerable/array 3 -> 0;presenter re-template retained handlers 7 -> 0,TimeViewCell pointer-enter delegate allocations 1/cell -> 0/cell
Upload 本轮已完成 structural-only Upload UploadShowCase baseline:cold mean 351.77ms,repeated mean 87.48ms;3 个页面级候选因 timing 无收益/退化已回滚并按 3-round budget 关闭;单图预览 sources wrapper 1 list -> 1 fixed array;directory upload file enumeration iterator 1 -> 0,file list initial capacity dynamic -> selected directory count;empty directory upload list allocations 1 -> 0,empty enqueue calls 1 -> 0;上传任务/trigger lookup FirstOrDefault(predicate) 7 -> 0;CurrentTaskList snapshot ToArray() 1 -> 0;runtime extension lowercase strings 1 -> 0,repeated IsTaskRunning writes 1 -> 0,10-task running scan best-case 10 -> 1;drop files list exact capacity,empty drop list allocations 1 -> 0
WindowTitleBar 本轮已完成结构优化 WindowTitleBar CaptionButton normal/checked 两套 IconPresenter 收敛为单 presenter;Windows 默认标题栏 visual/root 40 -> 27,IconPresenter/root 10 -> 5,KB/item 782.4 -> 531.6;Linux Window click-through extra property set allocations / instance 1 -> 0 after type init;页面 timing smoke-only
Steps 本轮已完成结构正确性修复 Steps ConfigureItemsPanel 清理 stale ColumnDefinitions;pointer-release hit-test LINQ operators 1 -> 0;StepsShowCase repeated timing 未证明收益,按 structural-only 记录
TabControl 本轮已完成 Gallery 实测 + render structural TabControl 默认无 icon/非 closable tab 不再创建隐藏 slot;TabControlShowCase visuals 1583 -> 1405,repeated mean 170.75ms -> 157.35ms;tab strip border repeated render Pen allocations 1/control -> 0 after first;edge indicator visibility temp list 1 -> 0;overflow cleanup LINQ operators 2 -> 0;overflow item close anonymous handler 1 -> 0
Tour 本轮已完成结构绑定优化 Tour TourStepsView 7 条同生命周期 RelayBind 改为 template-priority direct binding;TourShowCase repeated mean 65.81ms -> 61.91ms,visuals/logical 不变;CustomActions sync LINQ/list wrapper 1 -> 0;TourLayer render rectangle geometry allocations 2 -> 0
Tooltip 本轮已完成(structural-only) Tooltip ToolTipService.StartShowTimer 复用 DispatcherTimer + method-group Tick handler,避免每次 hover-show 分配 timer + lambda 闭包;同色 tooltip background brush allocations / open 1 -> 0;headless bench 不能触发 Show 流程,real-world hover-heavy 场景待 Gallery 实测
Separator 本轮已完成(structural-only) Separator AbstractSeparator.Render Pen 缓存(SKILL Cost Model 强制);headless bench 解析力 < 0.1 KB/instance 看不出,real-world 60fps render loop 才能放大

总列表

分类 控件/体系 状态 备注
Shared Primitive AdornerLayer Done (structural lifecycle) AdornerLayer;ScopeAwareAdornerLayer attach/detach 不再扫描 Children.Contains,卸载后清 adorned target 引用;layer lookup LINQ operators 3 -> 0,first inject scans 2 -> 1
Shared Primitive AddOnDecoratedBox Done Primitives;输入类控件共享视觉与 addon 体系;ContentFrame pointer handlers 4 -> 0 / instance;addon foreground/icon、inner geometry、pointer state unchanged writes 已收敛;addon icon brush descendant filter LINQ operators 1 -> 0;Select/TreeSelect/Cascader right-addon template 绑定已修复
Shared Primitive Icon Done Phase 6 已完成;Material/IconPark 外部包已同步 generated metadata 与 transform literal;Provider cache 清理语义已补齐
Shared Primitive Primitives / InfoPickerInput / CandidateList Done (correctness + lifecycle + interaction structural) Primitives;PickerClearUpButton 本地 Click handler 1 -> 0,AddOnDecoratedBox ContentFrame pointer handlers 4 -> 0 / instance,CandidateList.Items20 键盘候选移动 container checks 20 -> <=2、max-count enable writes 20 -> 0、空列表 invalid candidate writes 1 -> 0、clear-state writes 3 -> 0、single-mode HasFlag callsites 2 -> 0,TreeNodePath 派生操作 arrays 2 -> 1、path-string split/copy arrays 2 -> 1、WithSegment() LINQ copy 1 -> 0、append CopyTo dispatch 2 -> 0、部分 fast path 1 -> 0、same-instance comparisons N -> 0,MotionGhostControl repeated shadow writes 已收敛、shadow renderer list exact capacity,ArrowDecoratedBox repeated arrow writes 已收敛,WaveSpiritDecorator painter configure easing allocations 2 -> 0、fallback easing allocations 1 -> 0,PenUtils repeated immutable pen allocations 1 -> 0、dashed pen allocations 2 -> 0,多个自绘控件 repeated render Pen allocations 1-3 -> 0 after first,含 SliderThumb / SliderTrack / MenuSeparator / CircleProgress / DashboardProgress,本轮未保留 Steps progress pen 旧失败候选;DateTimeUtils widest datetime calculation enumerable/array allocations 3 -> 0;BorderRenderHelper dash mode cache stale risk 1 -> 0,CompactSpace wrapper / lookup lists exact capacity,add/remove item filter LINQ operators 2 -> 0,SliderTrack marks、ListBox/ListView/Cascader virtualizing context、ProgressBar/Tag 小型表 exact capacity,CompactSpaceItem repeated transform allocation 1 -> 0 after first、stale transform 1 -> 0,RangeInfoPickerInput unchanged indicator writes 6 -> 0,InfoPickerInput / TextBox / TextArea / ButtonSpinner / NumericUpDown / AbstractSelect open/close、clear、arrow、validation、compact-space、form-feedback unchanged writes 1 -> 0,popup overlay manager fallback LINQ operators 2 -> 0,ScopeAwareOverlayLayer direct child lookup LINQ operators 1 -> 0,addon icon brush descendant filter LINQ operators 1 -> 0
Shared Primitive ScrollViewer Done ScrollViewer;补齐控件级 suite 和真实 FloatButtonShowCase 对比,落地 selector/motion 正确性修复,未证明稳定页面级性能提升
General Button Done loading/icon/wave 默认 slot 已按需创建;selector brush 状态保留在 XAML
General FloatButton Done FloatButton;closed trigger menu、badge canvas、separator layer 已按需创建,Gallery repeated mean 提升约 12.55%;square group arrange visible-children temp list 1 -> 0,0/1 visible child line list 1 -> 0,collection sync OfType<Control> callsites 6 -> 0,group add source scans 2 -> 1,mirrored remove target scans 3 -> 0,menu motion default easing allocations 1 -> 0
General SplitButton Done (correctness + lifecycle) SplitButton;Flyout event/binding 注册幂等,替换旧 Flyout 不再残留 handler,secondary button 打开状态已修复
General Separator Done (structural-only) Separator;AbstractSeparator.Render Pen 缓存,headless bench 解析力不足,页面 timing 不作为主收益
General ButtonSpinner Done ButtonSpinner;handle/presenter/outer addon 已按需创建,floatable 全局 input 订阅生命周期已验证
General WindowTitleBar Done (structural) WindowTitleBar;CaptionButton 单 presenter 化,Windows 默认标题栏 visual/root 40 -> 27,IconPresenter/root 10 -> 5;Linux Window click-through extra property set allocations / instance 1 -> 0 after type init;页面 timing 不作为收益证明
Layout FlexPanel Done (parser structural-only) FlexPanel;已建立 5 个控件级场景和 4 个状态校验,生产布局候选因 timing smoke 回归已撤回;FlexBasis.Parse uppercase temp strings 1 -> 0,percent trim temp strings 1 -> 0
Layout Grid Done (correctness + structural) Grid;修复 Row stale layout cache,新增 6 个控件级场景和 3 个状态校验;GridColSize.ConvertTo parts temp list 1 -> 0;Row alignment converter lowercase temp strings 2 -> 0、trim temp strings 2 -> 0;GridColSize parse split arrays 1 -> 0、segment/key/value trim strings 3 -> 0 / segment;GridGutter split arrays 2 -> 0;timing smoke-only
Layout Space Done Space;已完成 Phase 0-7;CompactSpaceFiller 不再承担 wrapper;本轮补充 CompactSpaceItem / CompactSpaceAddOn / TextBox / ButtonSpinner / NumericUpDown repeated compact-space writes 1 -> 0,CompactSpaceItem repeated transform allocation 1 -> 0 after first,changed-offset transform allocation 1 -> 0 after first,stale transform 1 -> 0,real-children position temp list 1 -> 0,wrapper / lookup lists exact capacity,CompactSpace add/remove item filter LINQ operators 2 -> 0,普通 Space collection sync LINQ type-filter callsites 4 -> 0,CompactSpaceSize.Parse uppercase temp strings 1 -> 0,star substring/temp token strings 1 -> 0 / token;页面 timing 不作为本轮收益证明
Layout SplitView Done (structural lifecycle) SplitView;初始 pane transition 延迟到第一次 runtime open/close,典型场景 KB/item 约下降 ~1KB
Layout Splitter Done Splitter;hidden collapse icon 不再构造/保留 PathIcon,lazy preview transform 复用,动态 children add temp objects 3 -> 1,remove temp objects 2 -> 0,remove target scans 1 -> 0,panel refresh temp objects 2 -> 0,resize event sizes temp objects 3 -> 1,panel size compute temp lists 2 -> 0,collapsible parser trim temp strings 1 -> 0,SplitterShowCase repeated mean 提升约 6.10%,P95 提升约 21.93%
Navigation Breadcrumb Done (correctness + baseline) Breadcrumb;修复父级 separator 传播到 direct/generated inherited items;Gallery cold / P95 / alloc 有收益,repeated median 基本持平
Navigation ComboBox Done ComboBox;默认 host、popup content、handle IconButton 成本已按需/轻量化,Gallery repeated mean 提升约 16.72%;ComboBoxHandle anonymous click handler 1 -> 0,re-template retained handler risk 1 -> 0
Navigation DropdownButton Done (lifecycle) DropdownButton;MenuItemClicked 与 flyout property bindings 改为 attach-gated,detached/replace 生命周期已验证
Navigation Menu Done Menu;闭合 leaf/toggle/submenu Popup 重内容已按需创建,ContextMenu window 订阅释放已补齐,Gallery repeated mean 小幅提升;MenuItem child filter LINQ operators 1 -> 0
Navigation NavMenu Done NavMenu;container binding 生命周期、全局关闭订阅按需化、默认路径完整显示和 Gallery 严格 ready 口径已完成;active indicator repeated scale update transform allocation 1 -> 0;path traversal lists exact capacity;selected/default path Reverse passes 2 -> 0;submenu interaction LINQ operators 4 -> 0;internal SubItems enumerable calls 7 -> 0;public SubItems LINQ operators 2 -> 0;default path root lookup 1 -> 0;selected/default path lists exact parent depth;selected path ToHashSet calls 3 -> 0,Except operators 2 -> 0;first select old-path empty HashSet allocations 2 -> 0
Navigation Pagination Done Pagination;页码项和只读 SimplePagination 隐藏成本已按需化,PaginationShowCase repeated mean 提升约 21.10%;nav item pointer-release LINQ operators 1 -> 0;anonymous click handler callsites 2 -> 0,duplicate/clear handler risk 1 -> 0,realized-container count LINQ calls 1 -> 0,disabled feature retained controls 2 -> 0,QuickJumperBar LineEdit detach handler 1 -> 0;quick jump input trim temp strings 3 -> 0
Navigation Steps Done (structural-only) Steps;修复 ConfigureItemsPanel 未清理 ColumnDefinitions 的结构问题;pointer-release hit-test LINQ operators 1 -> 0,未证明稳定页面级性能收益
Navigation TabControl Done (render structural) TabControl;默认 tab item hidden slot 按需化,TabControlShowCase repeated mean 提升约 7.85%,visuals 1583 -> 1405;tab strip border repeated render Pen allocations 1/control -> 0 after first;edge indicator visibility temp list 1 -> 0;overflow cleanup LINQ operators 2 -> 0;overflow item close anonymous handler 1 -> 0
Data Entry AutoComplete Done AutoComplete;关闭态 CandidateList/PopupFrame 已按需创建;Gallery repeated mean 提升约 25.79%;single selection changed removed/added lists 按 0/1 个元素预设容量,completion prefix substring allocations 2 -> 0,保留 Avalonia SelectionChangedEventArgs 的可变 List 兼容形态
Data Entry Cascader Done Cascader;closed popup、filter input、multiple tags、filter list、checkbox/loading slot 已按需创建,Gallery repeated mean 小幅下降;multi-select sync temp lists/hashsets exact capacity;OptionsSource copy / selected set diff 去 LINQ materialization;本轮补充 filter/path parse LINQ chains 2 -> 0、expand path root lookup 1 -> 0、default/selected path header list exact capacity、filter full-path cache root-count lower-bound capacity、filter full-path lists exact depth、full-path Reverse passes 2 -> 0、selected path Reverse passes 1 -> 0、expand path Reverse passes 1 -> 0、expand path node list exact depth、parent checked sets exact depth、child existence LINQ calls 10 -> 0、parent checkbox child scans 3 -> 1 / ancestor、effective tag parent-candidate scans P -> 0、empty effective tag list allocations 1 -> 0、checked/unchecked subtree result HashSet allocations N -> 1、checked sync fallback empty HashSet allocations 2 -> 0、default path list wrapper 1 -> 0、read-only option source exact capacity
Data Entry CheckBox Done CheckBox;unchecked/contentless 默认路径不再创建 wave、Icon mark、tristate mark;CheckBoxShowCase visuals 420 -> 318,alloc 6385.60KB -> 4629.80KB
Data Entry ColorPicker Done (structural lifecycle + correctness) ColorPicker;关闭态不再订阅 Window.Deactivated,Gallery 23 个 idle 订阅降为 0;preview/thumb brush allocations per HsvValue update 3 -> 0;透明背景同 token brush refs / 1000 builds 1000 -> 1;palette 选择事件改为实例级 handler,修复跨 group 误通知;Gradient stop/thumb sort LINQ chains 3 -> 0;ColorBlock background same-color brush allocations 1 -> 0;active thumb fallback LINQ enumerators 1 -> 0;HEX input trim temp strings 1 -> 0;ColorSpectrum empty HSV cache list allocations 1 -> 0 / instance,arrow-key HasFlag calls 1 -> 0;GradientColorPicker excess text-run Last() calls 1 -> 0 / removed run;removed-thumb/default-palette list exact capacity
Data Entry DatePicker Done DatePicker;关闭态 popup content、默认 accessory host、Window.Deactivated 订阅已按需化;CalendarView blackout-date Any(predicate) 1 -> 0;presenter re-template retained handlers 14 -> 0;RangeDatePicker pick-state HasFlag callsites 3 -> 0
Data Entry TimePicker Done TimePicker;InfoPickerInput closed presenter 延迟到首次打开,真实 TimePickerShowCase repeated mean 提升约 6.93%;increment correction temp list/enumerable 1 -> 0;preferred-width sweep temp enumerable/array 3 -> 0;presenter re-template retained handlers 7 -> 0,TimeViewCell pointer-enter delegate allocations 1/cell -> 0/cell
Data Entry Form Done Form;已完成低风险结构与生命周期优化,控件级小幅提升,Gallery 结构/分配下降,页面 repeated timing 基本持平;validate results list allocations 1 -> 0,error check LINQ operators 1 -> 0;Items collection anonymous handler 1 -> 0;warning inline Last() calls 1 -> 0 / warning message
Data Entry Input Done Input;TextBox/TextArea 默认 accessory、count、resize 成本按需化;本轮补充 TextBox compact-space / feedback、TextArea validation / feedback repeated writes 1 -> 0;真实 LineEditShowCase 结构/分配下降,repeated timing 基本持平
Data Entry LineEdit Done 已完成控件级优化与 Gallery 实测
Data Entry Mentions Done Mentions;closed popup content 与 OptionsSource cache 已按需化,OptionsSource cache list exact capacity,read-only OptionsSource exact capacity,filtered view first selected lookup 1 -> 0,trigger-prefix temp strings 1 -> 0 / scanned char,insert previous-char compare temp strings 2 -> 0,Gallery repeated mean 小幅改善,alloc 下降约 7.80%
Data Entry NumberUpDown / NumericUpDown Done NumericUpDown;默认 clear/accessory 按需创建;本轮补充 repeated compact-space / validation writes 1 -> 0;clear button anonymous click handler 1 -> 0,re-template retained handler risk 1 -> 0;NumberUpDownShowCase cold mean 提升约 10.97%,repeated mean 提升约 3.97%
Data Entry OptionButtonGroup Done OptionButtonGroup;默认隐藏 icon/wave 成本已按需化,RadioButtonShowCase repeated mean 提升约 15.99%
Data Entry RadioButton Done RadioButton;RadioIndicator wave 默认不预创建,RadioButtonShowCase visuals 689 -> 668,Wave 22 -> 1;checked sync OfType LINQ operators 1 -> 0,stale checked clear 已修复;group first-add list capacity dynamic -> 1
Data Entry Rate Done Rate;默认星形、焦点虚线框和全局 input 订阅成本已收敛,string first lookup LINQ calls 1 -> 0,RateShowCase repeated mean 提升约 10.96%
Data Entry Select Done Select;SelectShowCase repeated mean 220.31ms -> 143.76ms,alloc 28027.36KB -> 23904.61KB;closed popup/list/accessory hidden cost 已按需化;本轮补充 closed popup frame / candidate list visuals 1 -> 0、DropDown opened/closed notifications 2 -> 1,--verify-select-states 通过;AbstractSelect repeated compact-space / validation / form-feedback writes 1 -> 0,selected-options sync/copy LINQ materialization 6 -> 0,async options empty-check LINQ calls 1 -> 0,default value first lookup 1 -> 0,read-only selected option source exact capacity;delete-key / tag-close copy writes N -> N-1,delete-key remove calls 1 -> 0,empty no-op selection HashSet allocations 2 -> 0,empty-current add selection HashSet allocations 2 -> 1,dynamic tag cleanup selected/list allocations 1 -> 0,candidate single-mode HasFlag callsites 2 -> 0
Data Entry Slider Done Slider;普通 Slider 的 PART_EndThumb 按需创建,marks cache 与全局 input 订阅已收敛,Gallery repeated mean 提升约 27.06%
Data Entry ToggleSwitch Done (interaction structural) Switch;IsChecked 切换 measure invalidations 1000 -> 0,页面加载不作为主收益
Data Entry TreeSelect Done TreeSelect;共享 SelectHandle 单 presenter 化,真实 TreeSelectShowCase repeated mean 提升约 12.64%,visuals 909 -> 858;本轮补充 closed popup frame / TreeSelectTreeView visuals 1 -> 0,detach visual parent risk 已验证清理;选择同步/effective tags LINQ chains 20 -> 0,effective tag parent-candidate scans P -> 0,checked strategy HasFlag callsites 2 -> 0,empty effective tag list allocations 1 -> 0,read-only ItemsSource / selected / checked source exact capacity
Data Entry Transfer Done Transfer;TargetKeys lookup 复用 HashSet,空 target panel 直接短路,TreeTransfer target 递归结果列表 N -> 1;本轮补充 key list Select().ToList() materialization 6 -> 0、selected-items sync LINQ chain 1 -> 0、filter LINQ operators 12 -> 0、filter ToArray() 4 -> 0、source/target flag HasFlag callsites 6 -> 0,selection changed arrays 2 -> 0,SelectedItems collection changed enumerators 2 -> 0,empty selected-keys source scans N -> 0,tree root snapshot lists 1 -> 0、null target result lists 1 -> 0,selection model equality LINQ chains 1 -> 0、old-selection snapshot arrays 1 -> 0,read-only panel / key / tree-list sources exact capacity;TransferShowCase repeated mean 提升约 8.49%,cold mean 提升约 10.22%
Data Entry Upload Done (structural-only) Upload;已建立 Gallery baseline,3 个页面级候选无收益/退化已回滚并按 3-round budget 关闭;单图预览 sources wrapper 1 list -> 1 fixed array,directory upload iterator 1 -> 0,directory file list initial capacity dynamic -> selected directory count,empty directory upload list allocations 1 -> 0,empty enqueue calls 1 -> 0,上传任务/trigger lookup FirstOrDefault(predicate) 7 -> 0,CurrentTaskList snapshot ToArray() 1 -> 0,runtime extension lowercase strings 1 -> 0,repeated IsTaskRunning writes 1 -> 0,10-task running scan best-case 10 -> 1,drop files list exact capacity,empty drop list allocations 1 -> 0
Data Display Avatar Done Avatar;互斥内容 presenter 与折叠 flyout 已按需创建,Gallery repeated mean 提升约 23.13%;AvatarGroup add/remove item filter LINQ operators 3 -> 0
Data Display Badge Done Badge;hidden zero 和无文本 DotBadge 已按需创建,Badge/Ribbon preset color match ToLower() 临时字符串 15 -> 0,trim temp strings 2 -> 0,Ribbon corner brush allocations / render 1 -> 0 after first,Badge scale transform allocations / show 3 -> 0,Gallery visual/alloc 下降,导航 timing 收益有限
Data Display Calendar Done Calendar;按当前 DisplayMode 延迟填充 MonthView/YearView cells,控件级 Calendar.Default ms/item 提升约 24.63%,Year/Decade 初始模式约 48%,Gallery visuals 201 -> 189;blackout-date Any(predicate) 1 -> 0
Data Display Card Done Card;Header/Cover/Actions/Skeleton 已按需创建,Gallery repeated mean 提升约 35.14%;Card collection sync OfType<Control> callsites 6 -> 0,mirrored action remove target scans 2 -> 0,Tabs remove value lookups N -> 0,Tabs move 边界风险 1 -> 0
Data Display Carousel Done Carousel;nav/progress/PageTransition 已按需创建,真实 Gallery alloc 6113.86KB -> 5213.10KB,cold 164.35ms -> 149.05ms;indicator refresh list wrapper 1 -> 0,pagination pointer-release LINQ operators 1 -> 0,progress default easing allocations 1 -> 0,repeated timing 基本持平
Data Display Collapse Done Collapse;addon、no-arrow、closed content 已按需创建,Gallery repeated mean 提升约 16.03%;pointer-release hit-test LINQ operators 1 -> 0;item motion default easing allocations 1 -> 0
Data Display Descriptions Done Descriptions;DescriptionsShowCase repeated mean 75.84ms -> 68.64ms,visuals 579 -> 571;add/remove/apply/layout temp lists 1 -> 0,collection changed item filter LINQ operators 2 -> 0,ItemsSource import LINQ operators 1 -> 0,read-only typed source upper-bound capacity;MediaBreakInfo single-value trim temp strings 1 -> 0;headless dynamic add ColumnSpan=0、dynamic insert/remove child index、Reset clear 与 Items replacement subscription 已修复,binding/collection/window 订阅生命周期已补齐验证
Data Display DataGrid Done (T4 complete) DataGrid;T4.1-T4.5 已全部完成并覆盖内部 row/cell/header 等子控件;filter flyout 内容延迟到首次打开,关闭态过滤菜单项 7 -> 0,空选 selected-values list allocations 1 -> 0 / empty close;column/group/row header 本地 routed handlers 已收敛;clip / transform repeated allocation 已收敛;RowGroupHeader frozen transform/clip dictionaries exact root-child capacity;DataGrid core input handlers 4/grid -> 0/grid;special columns 在 Columns.Clear() 后释放 grid 事件链,removed-self IList.Contains callsites 5 -> 0;pagination visibility HasFlag calls 1 -> 0 / convert;keyboard modifier HasFlag calls 2/3 -> 0 / query;DataGridLength string trim/substr temp strings 2 -> 0 / star parse;列重排拖拽 indicator 复用 dashed Pen;DataConnection / CollectionView / ValidationUtils / TypeHelper 数据层结构优化已完成;--verify-datagrid-states 通过
Data Display Expander Done Expander;closed content/addon/no-arrow slot 已按需创建,Gallery repeated mean 提升约 18.11%;expand button anonymous click handler 1 -> 0,re-template retained handler risk 1 -> 0;content motion default easing allocations 1 -> 0
Data Display Empty Done Empty;低风险正确性修复与热路径收敛,Gallery repeated mean 小幅改善,visual tree 不变
Data Display GroupBox Done GroupBox;header icon presenter 已按需创建,GroupBoxShowCase visuals 151 -> 143,repeated mean 27.79ms -> 26.16ms;header mask fallback brush allocations per render 1 -> 0
Data Display ImagePreviewer Done ImagePreviewer;单图关闭态只加载可见封面,完整弹窗 source list 延迟到首次打开,3-image closed dialog sources 3 -> 0,closed live preview sources 3 -> 1;--verify-imagepreviewer-states 已通过;Gallery repeated mean 提升约 8.79%;fallback source list 1 list -> 1 fixed array,ItemsSource load list exact capacity;SVG extension lowercase temp strings 1 -> 0;cover fallback first-source LINQ enumerators 2 -> 0;empty ItemsSource stale effective-source / cover-image risk 1 -> 0,clear CoverImageSrc fallback misses 1 -> 0,old source releases 0 -> N,empty effective-source list allocations 1 -> 0
Data Display InfoFlyout Done (correctness + lifecycle) InfoFlyout;关闭态不再提前创建 Popup shell,Flyout=null/replace/detach 释放 host-to-flyout binding
Data Display List Done ListView;group/filter refresh 与分页枚举成本已收敛,真实 ListShowCase repeated mean 提升约 4.19%;ListBox SelectAll hotkey Any(predicate) 1 -> 0;ListView selection snapshot ToArray() callsites 6 -> 0;ListBox filter HasFlag callsites 2 -> 0;ListView Shift HasFlag callsites 1 -> 0
Data Display QRCode Done QRCode;PNG encode/decode 已移除,icon/status hidden tree 按需创建,QRCodeShowCase repeated mean 提升约 26.81%
Data Display Segmented Done Segmented;无 icon item 的隐藏 IconPresenter 已按需化,真实 SegmentedShowCase repeated mean 提升约 18.51%
Data Display Statistic Done Statistic;generated content ownership、CountUp DataContext 清理、TimerStatistic timer 生命周期验证;StatisticShowCase repeated alloc 下降约 3.25%,visuals 387 -> 384
Data Display Tag Done Tag;非 closable Tag 减少约 2KB/instance,Gallery 76 实例约减少 140KB 加载分配;Tag color name ToLower() 临时字符串 19 -> 0,trim/custom parse strings 2 -> 0
Data Display TextBlock Done (structural) TextBlock;HighlightableTextBlock 段级 Run(N 字符 → ≤ 1 + 2K Run),SelectableTextBlock token binding + Cursor 移到 Theme Setter;无命中高亮 ranges list 1 -> 0;命中 ranges list 初始容量 0 -> 1;highlight strategy HasFlag callsites 3 -> 0;SelectableTextBlock Shift HasFlag callsites 1 -> 0;hotkey/hit-test LINQ predicates 3 -> 0
Data Display Timeline Done (structural + correctness) Timeline;TimelineIndicator.Render Pen 缓存,pending item 生命周期和默认/custom icon 显示已验证;页面级 timing 未证明收益
Data Display TreeView Done TreeView;NodeSwitcherButton 单 presenter 化,真实 TreeViewShowCase repeated mean 提升约 35.80%,visuals 2108 -> 1646;连接线 repeated render Pen allocations 1-2 -> 0 after first,拖拽 indicator render frame 1 -> 0 after first,checkbox parent aggregation child scans 2 -> 1;filter 无命中 ranges list 1 -> 0,filter selection startup list 1 -> 0,filter selection / checkbox parent HashSet exact parent depth,filter highlighter Run objects 16 -> 3 / 16 -> 1,filter item-header strategy HasFlag callsites 3 -> 0,filter/form flag HasFlag callsites 11 -> 0,item path Reverse passes 1 -> 0,path / traversal / checked reset lists exact capacity,subtree checked/unchecked result sets exact realized subtree + parent depth;TreeViewItem child node filter LINQ operators 1 -> 0,collection changed item enumerators 4 -> 0
Data Display Tooltip Done (structural-only) Tooltip;ToolTipService.StartShowTimer 复用 timer,hover-show 路径少分配 timer/lambda;同色 background brush allocations / open 1 -> 0
Data Display Tour Done (structural) Tour;TourStepsView 同生命周期 RelayBind 改为 template-priority direct binding,页面加载小幅改善;CustomActions sync LINQ/list wrapper 1 -> 0;TourLayer render rectangle geometry allocations 2 -> 0;popup 打开场景待专项 harness
Feedback Alert Done MarqueeLabel;默认非 marquee Alert 不再承担隐藏 MarqueeLabel 成本,AlertShowCase repeated mean 提升约 16.43%
Feedback Drawer Done Drawer;关闭态 OpenOn/SizeChanged 已按需化,detach/open/close 生命周期已补齐验证;Gallery repeated mean 24.24ms -> 22.87ms;open/close default easing allocations 1 -> 0
Feedback Message Done Message;manager 按需创建,auto-close timer、MessageClosed、OnClose 生命周期已补齐,Gallery repeated mean 提升约 7.91%;excess visible messages temp list 1 -> 0
Feedback MessageBox Done MessageBox;同生命周期 binding 改为 [!],loading skeleton 按需创建,状态/释放验证已补齐;CustomButtons sync OfType<DialogButton> callsites 2 -> 0
Feedback Modal Done Dialog;closed MessageBox 内部 Dialog 已按需创建,mask/resizer 生命周期已验证;ButtonBox 缺省角色列表 fallback allocations 14 -> 0,group/sync lists exact capacity;DialogButtonBox CustomButtons sync LINQ operators 2 -> 0,custom add/remove enumerators 2 -> 0,button-role dictionary lookups 2 -> 1 / update,role dictionary initial capacity dynamic -> 10 roles,DialogStandardButtons parser converter allocations 1 -> 0 after type init,standard button flag checks bitwise 化,resize handle HasFlag callsites 4 -> 0,host propagation OfType callsites 8 -> 0,MessageBox propagation OfType callsites 2 -> 0;Gallery 结构和分配下降,repeated timing 未证明提升
Feedback Notification Done Notification;manager/card 生命周期补齐,7 个 Gallery manager 与 progress bar 按需创建,Gallery repeated mean 提升约 22.24%;progress visibility converter temp list 1 -> 0,cleanup queue/set exact default capacity
Feedback PopupConfirm Done (correctness + lifecycle) PopupConfirm;静态 cancel/content slot 保留并通过 IsVisible=false 隐藏,本地 Click handlers 2 -> 0,隐藏 cancel direct-click side effects 2 -> 0;页面 timing 不作为本轮收益证明
Feedback ProgressBar Done ProgressBar;status icon 按需创建,真实 ProgressBarShowCase repeated mean 154.17ms -> 111.26ms,runtime visuals 1389 -> 977;Circle/Dashboard repeated render pen allocations 3 -> 0 after first,inner label color temp list 1 -> 0,same-color brush allocation 1 -> 0
Feedback Result Done Result;状态 icon presenter 与错误码 Svg 互斥按需创建,ResultShowCase repeated mean 提升约 9.21%
Feedback Skeleton Done (structural lifecycle + correctness) Skeleton;重复 class handler、inactive animation、paragraph line rebuild/follow 生命周期已修复;paragraph last-line Last() calls 1 -> 0 / width update;页面 timing 不作为主收益
Feedback Spin Done (structural lifecycle + correctness) Spin;hidden SpinIndicator animation 延迟到可见时创建,motion 参数变化后重建已 materialized 动画;页面 timing 不作为主收益
Feedback Watermark Done (correctness + lifecycle) Watermark;Glyph 连续替换不再堆叠重复 Watermark,Glyph = null 可可靠清理;pending 4 次替换 visual/root 12 -> 5、KB/item 244.1 -> 73.0
Tooling AtomUI.Performance harness Done (recovered) Avalonia 12 迁移期间失同步的 62+ 错误已清干净(保留 stub AddOnDecoratedBoxPerfProbe、排除待重写的 AccessoryLifecycleVerification.cs / EffectiveBrushVerification.cs,3 处状态验证打 TODO)。--suite textblock / --suite popup / --verify-textblock-states 可用,T0.1 / T0.2 微基准已回填。

状态定义

状态 含义
Pending 尚未建立控件级性能基线
Plan 已形成分析方案,尚未建立控件级性能基线
Baseline 已有基线,尚未实施优化
In Progress 正在优化或验证
Done 已有基线、优化记录和最终数据