2024-12-27 Flutter 构建模式对比debug/release/profile

Profile模式和Release模式使用JIT字节码

App 16.5Mb

7.1M fonts
3.7M assets
724K packages
100K NOTICES.Z
24K AssetManifest.json
24K AssetManifest.bin
12K shaders
4.0K FontManifest.json

Debug模式使用AOT机器码

App 35Kb

77M kernel_blob.bin
10M isolate_snapshot_data
7.1M fonts
4.4M assets
712K packages
100K NOTICES.Z
24K AssetManifest.json
24K AssetManifest.bin
16K vm_snapshot_data
12K shaders
4.0K FontManifest.json

profile


image.png

debug


image.png

release

image.png

profile模式可以查看真实的帧渲染性能
使用 profile build 来分析性能。 帧渲染时间在调试模式下不代表发布模式的性能。请在 profile 模式下运行应用,它仍然保留了有用的调试信息。

profile模式只能真机

debug模式支持 flutter inspector 、
更多调试选项:

flutter inspector

Flutter widget inspector 是一个强大的工具,用于可视化和查看 widget 树。 Flutter 框架层使用 widgets 作为核心构建模块来处理从控件(例如文本、按钮和切换等)到布局(例如居中、填充、行和列等)的所有内容。 Flutter inspector 不仅可以帮助你可视化查看 Flutter widget 树,还有其他的作用:

了解现有布局
诊断布局问题

更多调试选项

想要诊断渲染图层相关的问题,请先关闭渲染层。下述的选项将会默认启动。

image.png

想要查看你的应用的性能影响,请尝试以相同的操作重现性能问题。在渲染层关闭的情况下,于构建帧图表里选择一个新的构建帧,查看它的时间线细节。如果光栅线程的时间消耗有显著降低,那么你禁用的效果的滥用可能是导致卡顿的主要原因。

渲染裁剪的图层
禁用该选项来检查已使用的裁剪图层是否影响了性能。如果禁用后性能有显著提升,请尝试减少你的应用中裁剪效果的使用。

渲染透明度图层
禁用该选项来检查已使用的透明度图层是否影响了性能。如果禁用后性能有显著提升,请尝试减少你的应用中透明度效果的使用。

渲染物理形状图层
禁用该选项来检查已使用的物理形状图层是否影响了性能,例如阴影和背景特效。如果禁用后性能有显著提升,请尝试减少你的应用中物理效果的使用。

《提高渲染性能》:
https://docs.flutter.cn/perf/rendering-performance

《使用 Flutter inspector 工具》
https://docs.flutter.cn/tools/devtools/inspector

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容