大屏开发随笔-----优化CPU工作密度,来提高FPS

本文介绍了在开发智慧楼宇大屏过程中遇到的性能问题,如页面加载延迟导致的卡顿和闪退。通过优化UI动效顺序、使用协程加载图片以及及时释放内存资源,显著提升了用户体验。具体措施包括先执行UI动效再加载数据、使用协程生成图片以减轻CPU负担,以及使用Resource.UnloadUnusedAssets和GC来管理内存,防止内存爆增和程序闪退。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近给某甲方做的智慧楼宇大屏,有很多需要优化的点,比如在点开某个页面的时候,会在网上加载大量数据,会使程序卡住4秒钟,不仅体验很差,而且这个时候程序失去响应,如果用户点击屏幕,可能就白屏然后闪退了。

针对这点我做了好几处优化,优化了体验且,让程序不会有失去响应的情况

1.之前是UI动效和数据加载同时做,改成先做完UI动效,然后再加载数据。这个优化看起来没技术含量,但是让体验直接拉升,之前感觉UI切换的时候会卡一下。改完之后虽然程序还会卡,但是UI动效已经结束了,所以 看起来流畅多了。

2.生成图片用协程。这个界面需要请求大量数据,其中有文字也有图片,文字对于程序的压力其实是很小的,主要是 图片。或者对于Unity来说是 资源(assets)。通过HTTP请求下载的json数据中的图片,在json里是一个长字符串,其实就是一个颜色数组,在Unity里面需要将这个颜色数组转化为ui可以用的 sprite,就是Sprite.Creat (Texture2D t)方法,我的程序需要加载几十张图片。所以用协程来生成这个图片,最终减轻了CPU的工作密度,之前切换这个页面的时候会卡住4秒钟,所有生成图片方法用协程来做时候,切换这个页面会卡大概0.5秒

3.顺带一提,这些图片都是员工的头像,是一个实时数据,需要实时刷新。所以免不了频繁的http请求图片。这个是很耗内存的。一定要即时清理内存。调用Resource.UnloadUnuseAssets ,然后再GC一下。对于unity 来说 ,图片属于资源(assets)。对于传统的引用类型来说,引用计数为0时,就会在自动GC时被清理掉,但是资源,即时引用计数为0时,也不会被清理,需要手动调用Resource.UnloadUnuseAssets  否则,无限制的加载资源,内存直接爆掉,操作系统会kill掉这个程序,说白了就是闪退了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值