Flutter之禅 内存优化篇
作者:闲鱼技术-福居
前言
性能稳定性是App的生命,Flutter带了很多创新与机遇,然而团队在享受Flutter带来的收益同时也迎接了很多新事物带来的挑战。
本文就内存优化过程中一些实践经验跟大家做一个分享。
Flutter 上线之后
闲鱼使用一套混合栈管理的方案将Flutter嵌入到现有的App中。在产品体验上我们取得了优于Native的体验。主要得益于Flutter的在跨平台渲染方面的优势,部分原因则是因为我们用Dart语言重新实现的页面抛弃了很多历史的包袱轻装上阵。
上线之后各方面技术指标,都达到甚至超出了部分预期。而我们最为担心的一些稳定性指标,比如crash也在稳定的范围之内。但是在一段时间后我们发现由于内存过高而被系统杀死的abort率数据有比较明显的异常。性能稳定性问题是非常关键的,于是我们火速开展了问题排查。
问题定位与排查
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
eclipse如何配置皕杰报表数据源
eclipse下tomcat 服务器怎么配置皕杰数据源 数据源::本机MySQL中的数据库test; 服务器:apache-tomcat-6.0.35; 1、先在Eclipse中建立一个Web项目, 我的叫Report。然后在Report项目上集成报表。 2、在\apache-tomcat-6.0.35\conf\Catalina\localhost中,建立名为MyReportJNDI.xml的文件,在其中指明项目路径和数据源配置,内容如下: xml代码: 〈Context path="/Report" docBase="D:/java/Report" debug="99" reloadable="true"〉 〈Resource name="mysql/test" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" maxIdle="30" maxWait="10000" sername="root" password="root" url="jdbc:mysql://localhost:3306/t...
- 下一篇
Event loop事件循环
线程 javascript是单线程语言,也就是说同一个时间只能做一件事情,而这个单线程的特性与它的用途相关,作为浏览器脚本语言,javascript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题,比如,假定javascript同时又两个线程,一个线程在某个结点上添加内容,另一个线程删除了这个结点,这个时候浏览器应该以哪个线程为准? 为了利用多核CPU的计算能力。HTML5提出了web Worker标准,允许javascript脚本创建多个线程,但是子线程完全受到主线程的控制,且不得操作DOM。所以,这个新标准并没有改变javascript单线程的本质。 【排队】 单线程就意味着所有任务需要排队,前一个任务接收,才能执行后一个任务,如果前一个任务耗时很长,后一个任务就不得不一直等着 像上面这样,如果排队是因为计算量大CPU忙不过来倒也算了,但是,如果是网络请求就不合适了,因为一个网络请求的资源什么时候返回时不可预知的,这种情况再排队等待就不明智了。 同步和异步 于是任务分为同步任务和异步任务 【同步】 如果在函数返回的时候,调用者就能够得到预期...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块