当前位置: 首页 > 知识库问答 >
问题:

Flutter app慢速

伯丁雷
2023-03-14

我正在试用Flutter,我的应用程序在仿真器和实际设备上的响应都非常非常慢。我收到这样的警告

跳过了51帧!应用程序可能在其主线程上做了太多的工作。

我知道Dart是一种单线程编程语言,在Android中,我曾使用用于异步的好的旧新线程();块来解决这一问题。我试图在Flutter中应用相同的方法,并且我阅读了futureawaitasync排序,但是当您从Internet读取数据时,这些示例似乎是针对这些示例的。我的应用程序在这个阶段没有在线读取任何内容,当我的屏幕有进度对话框时,当我打开一个新屏幕/页面时,以及应用程序上的每一个动画时,我会被跳过x帧。下面是一个我得到问题的类的示例:

_buildContent(){
    return new Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        new InkWell(
          onTap: (){
            Navigator.push(context, new MaterialPageRoute(builder:
                (context) => new LoginScreen()));
          },
          child: new Container(
            height: 150.0,
            width: 150.0,
            child: new Image.asset("images/logo.png", fit: BoxFit.cover,),
          ),
        ),
        new Container(
          margin: const EdgeInsets.all(16.0),
          child: new CircularProgressIndicator(
              value: null,
              strokeWidth: 1.0,
              valueColor: new AlwaysStoppedAnimation<Color>(
                  Colors.white
              )
          ),
        )
      ],
    );
  }

我假设跳过的x帧警告是由进度对话框引起的?我有另一个屏幕(登录屏幕),当打开小部件时,动画就位,动画移动如此缓慢,我可以看到每一帧正在呈现。是否有在线的教程可以帮助解决这个问题或仅仅理解DART的异步编程?

共有1个答案

张淳
2023-03-14

调试模式

  • 启动缓慢
  • 启动时闪烁
  • 应用程序大小较大。

因为调试模式具有热重新加载。

    null

编辑

https://flutter.io/docs/testing/ui-performance#debug-flags

调试模式启用了不在配置文件或版本构建中运行的附加检查(如断言),而且这些检查可能非常昂贵。调试模式也以与发布模式不同的方式执行代码。调试构建在应用程序运行时“及时”(JIT)编译Dart代码,但配置文件和发布构建在应用程序加载到设备之前被预编译为本机指令(也称为“提前”,或AOT)。JIT会导致应用程序暂停进行JIT编译,而JIT编译本身也会导致Jank。

https://github.com/flutter/flutter/wiki/flutter%27s-模式

设备上的调试模式(包括模拟器、仿真器):打开世界上所有的断言,包括所有的调试信息,启用所有的调试器辅助(如观察器)和服务扩展。优化快速开发/运行周期。不优化执行速度、二进制大小或部署。用于颤振跑。使用Sky/tools/gn--Android或Sky/tools/gn--iOS构建。有时也称为“检查模式”或“慢速模式”。

 类似资料:
  • 自从我安装了android studio,它从来没有Eclipse快。每当我开始调试时,在设备上开始调试和运行应用程序通常需要1-2分钟。 问题:我想知道如何解决这个问题(安装windows 64位或安装其他类型的android studion或...) 我的系统配置如下所示: 配备Core i5 cpu的笔记本电脑, Windows 8.1 32位 3GB可用RAM Android Studio

  • 我正在使用presto查询Cassandra记录,它需要大约8分钟来响应结果。需要提高响应时间。 Presto配置如下: 片段2成本:CPU 1.98M,输入:17833912行(1.49GB),输出:13089502行(1.31GB) ScanFilterProject[table=cassandra:cassandra:rasapp:raslog,originalConstraint=((“B

  • 我有一个批处理任务,从SQLServer读取记录并写入MARIADB。尽管我在批处理过程中实现了分区的概念,但该过程非常缓慢 下面是源系统和目标系统的数据源配置。 以下是配置的步骤和分区步骤 用读者和作者更新帖子 有人能介绍如何使用Spring Batch提高读写性能吗?

  • 我只是在试用这里提到的kafka-storm喷口https://github.com/nathanmarz/storm-contrib/tree/master/storm-kafka,我使用的配置如下所述。 但是,上面的喷子从Kafka主题中获取消息的速度大约是每秒7000条,但我预计每秒大约有50000条消息。我尝试了在spoutConfig中增加提取缓冲区大小的各种选项,但没有看到任何结果。

  • 针对Postgres数据库的某个索引SELECT查询所花费的时间非常可变--从50毫秒到多秒,有时甚至是几分钟,即使在最轻的负载下也是如此。 你能为26秒的差距提出一个解释吗? 关于并发的注意事项:即使只有一个请求也有很大的可变性:端到端50-300毫秒,但是当一个用户提交一批大约100个这样的查找时(可能有10-20个同时运行),很可能有几个查找需要5-10秒。然而C3P0的统计数据从来没有比:

  • 问题内容: 我有以下InnoDB表: 使用这些键: 我只是注意到有时我在此表上有一个INSERT查询,耗时超过1秒 我真的很困惑,为什么要花这么长时间。我如何加快速度? 顺便说一句:这样每天大约有80个缓慢的插入和40个缓慢的更新。 问题答案: 有时,不是查询本身会导致速度降低- 在表上运行的另一个查询可能会由于事务隔离和锁定而很容易导致插入速度降低。您的慢查询可能只是在等待其他事务完成。这在繁忙