首页 > 其他分享 >flutter 运行的四种模式

flutter 运行的四种模式

时间:2023-11-09 18:16:32浏览次数:32  
标签:Profile -- 性能 应用程序 模式 Debug flutter 四种

Debug(调试)模式

  1、 这是开发Flutter应用程序时最常用的模式。可以在真机和模拟器上同时运行。重要用于开发和调试阶段。
  2、可以进行热重载,即在不重新启动应用程序的情况下实时更新代码。
  3、应用程序会包含用于调试和开发的额外信息和工具(debugging信息、debugger aids(比如observatory)和服务扩展),例如错误提示、日志记录和断言。
  4、运行速度较慢,但它提供了最佳的开发体验和易用性。
  5、优化了快速develop/run循环,但是没有优化执行速度、二进制大小和部署。命令flutter run就是以这种模式运行的,通过sky/tools/gn --android或者sky/tools/gn --ios来build。有时候也被叫做“checked模式”或者“slow模式”

Release(发布)模式

  1、 Release模式用于构建发布版本的应用程序,以便在最终用户设备上运行。它通常用于应用程序的正式发布和发布到应用商店。
  2、 应用程序被优化以提供最佳的性能和资源利用。它会删除调试信息,减小应用程序的大小,并进行代码优化。
  3、 Release模式下的应用程序通常比Debug模式下的应用程序运行得更快。
  4、 Release模式只能在真机上运行,不能在模拟器上运行:会关闭所有断言和debugging信息,关闭所有debugger工具。
  5、 优化了快速启动、快速执行和减小包体积。禁用所有的debugging aids(调试工具和服务扩展。这个模式是为了部署给最终的用户使用。命令flutter run --release就是以这种模式运行的,通过sky/tools/gn --android --runtime-mode=release或者sky/tools/gn --ios --runtime-mode=release来build。

Profile(性能分析)模式

1、 Profile模式用于性能分析和优化应用程序阶段。它提供了比Debug模式更多的性能相关信息,但没有像Debug模式那样的完整调试支持。不支持热重载
2、 应用程序会收集性能数据,如内存使用情况、CPU占用率和渲染性能等。这些数据可以用于发现性能瓶颈并进行优化。
3、 Profile模式下的应用程序运行速度通常比Debug模式稍慢,但仍比Release模式快。
4、 Profile模式只能在真机上运行,不能在模拟器上运行:基本和Release模式一致,除了启用了服务扩展和tracing,以及一些为了最低限度支持tracing运行的东西(比如可以连接observatory到进程)。
5、 命令flutter run --profile就是以这种模式运行的,通过sky/tools/gn --android --runtime-mode=profile或者sky/tools/gn --ios --runtime-mode=profile```来build。因为模拟器不能代表真实场景,所以不能在模拟器上运行。

test(测试)模式

1、Test模式用于运行自动化测试和单元测试。它提供了特定的工具和环境,以便于测试代码的执行和断言结果的验证。
2、测试框架可以与应用程序交互,模拟用户操作并验证预期结果。
3、测试模式通常用于持续集成和构建过程中的自动化测试。

Observatory 观察模式

  *  Observatory是 Dart 和 Flutter 提供的一种强大的工具,用于在运行中的应用程序中监视、调试和分析应用程序的性能和行为。它提供了一组功能丰富的工具和界面,帮助开发者诊断和解决应用程序中的问题。
  *  Observatory 提供以下主要功能:
      1、内存分析:Observatory 可以帮助开发者监视应用程序的内存使用情况,包括对象分配和回收、内存泄漏等。这对于优化内存使用和解决内存泄漏问题非常有用。
      2、 CPU 分析:Observatory 提供了 CPU 分析工具,帮助开发者识别应用程序中的 CPU 瓶颈和性能问题。它可以显示每个函数的 CPU 使用情况,帮助定位耗时操作和优化热点代码。
      3、异步堆栈跟踪:Observatory 具有强大的异步堆栈跟踪功能,可以帮助开发者追踪异步操作的执行路径和调用关系。这对于理解异步代码的行为和解决异步问题非常有帮助。
      4、代码热重载:Observatory 具有热重载功能,可以在不重新启动应用程序的情况下实时更新代码。这使得开发者可以快速调试和修改应用程序的代码,提高开发效率。
      5、 性能监视:Observatory 提供了实时的性能监视工具,可以监视应用程序的帧率、渲染性能和 UI 响应时间。这对于优化应用程序的性能和响应性非常有用。
      6、 要使用 Observatory,可以在运行中的 Flutter 应用程序上启用它。在开发模式下,可以通过运行 flutter run --observatory-port= 命令启动应用程序,并在浏览器中访问相应的调试 URL。然后,可以使用 Observatory 提供的界面和工具来监视和分析应用程序。

Debug模式与Profile模式的区别在哪里

     1、功能和工具:Debug模式是用于开发和调试应用程序的模式。它提供了热重载(Hot Reload)、布局边界显示(Layout Boundaries)、控制台日志输出(Console Logging)以及断点调试(Debugging with Breakpoints)等功能和工具,方便开发者进行快速迭代和调试。而Profile模式则是用于性能分析和优化的模式。它提供了一些性能分析工具和优化策略,可以帮助开发者定位和解决性能问题。
  2、性能和优化:Debug模式下,Flutter会执行一些额外的检查和优化,以提供更好的开发体验。这包括更详细的错误信息、更快的热重载速度以及更好的运行时性能。但相应地,Debug模式的应用程序可能会运行得稍慢一些,因为包含了调试信息和工具。而Profile模式下,Flutter会执行更多的性能优化,以提高应用程序的性能和效率。这包括禁用调试信息、启用代码优化和移除不必要的开发工具和库。因此,在Profile模式下构建的应用程序通常更小、更快,并且具有更高的运行时性能。
  3、构建和部署:Debug模式下构建的应用程序通常用于开发、测试和调试阶段。你可以使用flutter run命令以Debug模式运行应用程序,并在开发过程中使用相关工具进行调试。而Profile模式下构建的应用程序则通常用于性能分析和发布准备阶段。你可以使用flutter run --profile命令以Profile模式运行应用程序,执行性能分析并优化应用程序的性能。在最终发布应用      程序之前,通常会使用Release模式进行构建和部署,以获得最佳的性能和体验。
  4、需要注意的是,Debug模式和Profile模式都是为了不同的目的而设计的。在开发过程中,通常会使用Debug模式进行快速迭代和调试,而在性能分析和优化阶段,可以切换到Profile模式进行性能分析和优化。最终,为了发布应用程序,会使用Release模式进行构建和部署,以获得最佳的性能和效果。

标签:Profile,--,性能,应用程序,模式,Debug,flutter,四种
From: https://www.cnblogs.com/guanchaoguo/p/17822428.html

相关文章

  • Kubernetes日志采集Sidecar模式介绍
    Kubernetes(K8S)作为CNCF(cloudnativecomputingfoundation)的一个核心项目,背靠Google和Redhat的强大社区,近两年发展十分迅速,在成为容器编排领域中领导者的同时,也正在朝着PAAS底座标配的方向发展。日志采集方式日志作为任一系统不可或缺的部分,在K8S的官方文档中也介绍了多种的日......
  • java的设计模式之抽象工厂模式
    抽象工厂模式(AvstractFactory)在某些情况下,需要创建一系列相关或相互依赖的对象,这些对象属于一组相关的产品族。同时,系统需要保证这些产品族之间的一致性。如果直接在代码中创建这些对象,会使得代码与具体产品的细节紧密耦合,不利于后续的扩展和维护。抽象工厂模式提供了一个接口,用于......
  • 自建站外贸收款方式?海洋建站支持什么收款模式
    在开展外贸业务时,自建站点是一个常见的选择,但关于收款方式的选择一直是外贸企业关注的焦点之一。本文将探讨自建站外贸收款方式的重要性以及海洋建站支持的收款模式,以帮助您更好地管理国际交易的资金流动。1.选择适合您业务的外贸收款方式在自建外贸网站时,选择合适的外贸收款方式......
  • Xcode自动管理签名模式下更新PP文件
    1、Xcode切换到相应的Target,选择到Signing&Capabilities,找到ProvisioningProfileManagedProfile,旁边有一个Info符号,点击,展示PP文件详情,然后拖动左上角的PP文件图标到桌面,主要是为了获取该PP文件的名字。(如下图) 2、打开 ~/Library/MobileDevice/ProvisioningProfi......
  • k8s通过sidecar模式收集pod的容器日志至ELK
    架构:已完成的部署1、ES集群及kibana部署 https://blog.51cto.com/yht1990/60809812、kafaka+zookeeper集群 https://blog.51cto.com/yht1990/6081518准备sidecar镜像(filebeat)找一台服务器打镜像[root@yw-testfilebeat]#catDockerfileFROMdocker.elastic.co/beats/f......
  • 桥接模式
       [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。    #include<iostream> usingnamespacestd; classTransportation{public:    virtualvoiddrive(){}}; classCar:publi......
  • 外汇110网:怎样的交易商模式更赚钱?MM还是ECN/STP
    每天都会有一些新的交易商出现,许多企业家也受到吸引开设交易公司。运营交易经纪公司真的如此赚钱吗?交易经纪可以赚多少钱?对这个问题的简短回答是,交易商可以赚很多钱,但并不像大多数人想象的那么容易。这是一项具有挑战性的业务,涉及正确管理和推广等许多事项。不仅仅是一个网站、一......
  • 【JAVA】智慧工地信息管理系统源码 智慧大屏、手机APP、SaaS模式
    一、智慧工地可以通过安全八要素来提升安全保障,具体措施包括:  1.安全管理制度:建立科学完善的安全管理制度,包括安全标准规范、安全生产手册等,明确各项安全管理职责和要求。  2.安全培训教育:对工地人员进行安全培训和教育,提高他们的安全意识和安全素质,使其掌握必要的安全知......
  • 大模型训练中的同步与异步模式
    在深度学习领域,GPU(图形处理器)因其高效的并行计算能力而成为训练深度神经网络的常用硬件。当我们在一个GPU上训练模型时,我们通常会使用一种称为“数据并行”(DataParallelism)的技术,将数据集分成多个小块,并在多个GPU上并行处理。然而,当涉及到多个GPU的训练时,存在两种主要模式:同步模式......
  • CH32FV32系列进入STOP及STANBY模式电流大的问题
    关于CH32FV32低功耗模式(STOP及STANDBY)。 我们EVT例程中将所有IO均配置成下拉输出而防止外部器件漏电流引起功耗增大。但是有的客户进入低功耗后需要IO电平保持从而出现了进入STOP/STANBY模式后电流还是很大(STOP几百个uA STANDBY一百多uA)。手册中低功耗电流如下: 对此通......