Flutter 的构建模式选择 https://docs.flutter.cn/testing/build-modes/
Flutter的四种运行模式:Debug、Release、Profile和test
https://blog.csdn.net/yumi0629/article/details/81909051
Debug
Debug模式可以在真机和模拟器上同时运行:会打开所有的断言,包括debugging信息、debugger aids(比如observatory)和服务扩展。优化了快速develop/run循环,但是没有优化执行速度、二进制大小和部署。命令flutter run就是以这种模式运行的,通过sky/tools/gn --android或者sky/tools/gn --ios来build。有时候也被叫做“checked模式”或者“slow模式”。
Release
Release模式只能在真机上运行,不能在模拟器上运行:会关闭所有断言和debugging信息,关闭所有debugger工具。优化了快速启动、快速执行和减小包体积。禁用所有的debugging aids和服务扩展。这个模式是为了部署给最终的用户使用。命令flutter run --release就是以这种模式运行的,通过sky/tools/gn --android --runtime-mode=release或者sky/tools/gn --ios --runtime-mode=release来build。
Profile
Profile模式只能在真机上运行,不能在模拟器上运行:基本和Release模式一致,除了启用了服务扩展和tracing,以及一些为了最低限度支持tracing运行的东西(比如可以连接observatory到进程)。
命令flutter run --profile就是以这种模式运行的,通过sky/tools/gn --android --runtime-mode=profile或者sky/tools/gn --ios --runtime-mode=profile```来build。因为模拟器不能代表真实场景,所以不能在模拟器上运行。
test
headless test模式只能在桌面上运行:基本和Debug模式一致,除了是headless的而且你能在桌面运行。命令flutter test就是以这种模式运行的,通过sky/tools/gn来build。
在我们实际开发中,应该用到上面所说的四种模式又各自分为两种:一种是未优化的模式,供开发人员调试使用;一种是优化过的模式,供最终的开发人员使用。默认情况下是未优化模式,如果要开启优化模式,build的时候在命令行后面添加--unoptimized参数。
原文链接:https://blog.csdn.net/yumi0629/article/details/81909051
Debug, Profile和Release三种构建模式之间的区别
https://qt-note.readthedocs.io/zh-cn/latest/qt_creator/the_three_build_configurations.html
在Qt Creator中创建一个项目之后,默认情况下,每个构建套件都有三种构建配置:Debug,Profile和Release,这三种构建配置之间的区别是什么呢?
Debug通常称为调试版本,它包含了调试信息,并且不作任何优化,便于程序员调试程序;
Release称为发布版本,它往往是进行了各种优化,使得程序大小和运行速度上都是最优的,以便用户很好地使用;
Profile is Release-with-debug-symbols
This option produce realize build(with all compiler optimization) but with debug symbols(pdb files) that are required for testing performance of C++.
Profile版本是一种介于Debug和Release之间的版本,只要用来进行性能测试。
Profile版本进行了各种优化,但是又包含调试符号。
警告
需要注意的是,如果程序中用到了其它的函数库,函数库也分为Debug版和Release版,Debug版和Release版是不能混合使用的。
编译Debug版的程序,需要使用Debug版本的函数库,不能使用Release版本的函数库;
编译Release版的程序,需要使用Release版的函数库,不能使用Debug版本的函数库。最好将Debug版和Release版,分开存放在不同的文件夹内。
https://www.cnblogs.com/pivotfuture/p/16297341.html
官方对Profile的描述是:Profile是介于Debug和Release中间的一种配置。具体是什么意思呢?下表描述了三种配置的区别:
配置类型 | 特点 |
---|---|
Debug | 带调试信息,编译时不做优化。 |
Profile | 带调试信息,编译时做一定优化。 |
Release | 一般不带调试信息,可以根据优化选项做不同程度的优化。 |