自身的思绪

于动装备及开辟UI界面卡顿,等待时长,页面白块,等等体验是非常糟糕的。本文记录自己在工作中解决UI卡顿底办法。

自身主要由以下地方着手

资源量

界面打开做的操作

界面自身的逻辑

IO的读写(包括接收的网络协议数据量)

咱俩是相同贱坐落上海底互联网创业团,我们的成品是「简书」:
http://jianshu.com ,既出 Web 端,也起 iOS
和Android 的 app,目前既进了第五独年头。

自身之条件

种类别:大型3DMMOARPG

Unity3D 5.3.7
基于UGUI,UI基础框架下KSFramework:https://github.com/mr-kelly/KSFramework

客户端配置文件通过sqlite存储(在Lua中读取数据)

测试机型

OPPOA57 中端机器 ,3G内存

翔参数:http://detail.zol.com.cn/1161/1160598/param.shtml

优化目标

打开界面的转,就会得举报,等待时以0.2s之内。

页面的情节可以是日益显示,但不期待出现堵塞的状况。

或你已听说过,我们于 2014 年完成了 500 万第一人民币之 Pre-A
轮融资,并为 2016 完成了数百万美元之 A
轮融资,2017年4月我们正好落成了4200万人民币B轮融资,领投方为君联资本、海纳亚洲创投基金(SIG)。

UI的Assetbundle大小

提议一个UI界面的的Assetbundle文件大小在1mb内,且负关系不要过三独,在包出来的*.manifest文件中(Dependencies节点)可以看来资源指关系。

假定一个界面的图片量过多,美术可以考虑于规划及简单图集,重复使用,九宫格,抽离大的背景图等方式,减少资源量。

建议:一个界面使用一个图集,减少图集间的交叉引用。

作国内一流的甲创作社区,简友们平均每秒发表三只评价、为五首稿子点“喜欢”,每半秒有同一首原创新作品诞生。

UI图占用的内存

查看单个界面的资源占用内存大小

1、点击 Window – 点击Profiler ,打开Profiler ,切换到
Memory页签

2、点击 Detaild – 点击 Take Sample ,选择
Assets/Texture2D,查看各个张图占用的内存

统计 1

提议:单个界面图集的内存占用控制以1~2M之内,其它特殊状况,可以考虑做成大图加载

俺们深信,你的赶来,会让简书变得还好。

整个UI界面的Gameobject数量

如UI界面中Gameobject的多寡过多,在加载Assetbundle实例化Gameobject时,耗时会重复增长。

自己之例子:

统计 2

(1个道具Prefab的Gameobject数量在10个左右)

统计UI界面的gameobject数量脚本

[MenuItem("UI/统计当前场景的Gameobject数量")]
    public static void MenuGameobjectCount()
    {
        var obj = GameObject.FindObjectOfType<UIWindowAsset>();
        if (obj)
        {
            var graphics = obj.GetComponentsInChildren<Transform>(true);
            Debug.LogFormat("当前场景的Gameobject数量:{0}",graphics.Length);
        }
    }

提议:单个界面的gameobject数量控制以100因为内

吃咱携手打造一个复精彩之「简书」吧,一起经受世界之礼赞!

开辟界面做的操作

削减在UI打开瞬间召开的操作,耗时之计量还是操作可以延时处理。

招聘岗位:大数量平台专家

每帧生成Gameobject

而列表的数码过多,建议每帧或者间隔多少帧进行Instantiate操作。

演示代码:

function UIRewardMonthly:Update()
    if self.index and  self.index <= self.maxCell then
        local item = GameObject.Instantiate(self.itemCell.gameObject)
        item.transform:SetParent(self.scrollContent.transform, false)
        self:DoRenderItem(self.index, item.transform, self.uiCache[self.index])
        if self.index == self.maxCell then
            --print("全部格子生成完成")
        end
        self.index = self.index + 1
    end
end

位置描述

  • 荷简书大数量平台技术架构设计,设计及支出,解决海量数据测算面临的挑战;
  • 管制、优化并维护Hadoop、Spark等集群,保证集群规模持续、稳定;
  • 当HDFS/hive/HBase的效能、性能和扩展,解决并促成工作需要;
  • 协成立数据模型,对数据开展打、优化和统计。

IO的读取

当动端的IO操作是大耗时的,比如读写配置文件。

浅析网络数据也是一致种植IO的操作,如果网络数据量大,解析为是较耗时的。

建议:

1、尽量减少在开拓界面时做IO的操作。

2、对亟待之数额提前处理,数量多的网络数据好展开分页。

3、对于本地数据可以开展缓存,避免以循环中展开查询或文件读写。

职要求

  1. 本科及以上学历,3-5 年Hadoop/Hive/Hbase/Spark/Flume/Kafka
    生产条件工作经验;
  2. 备主流大数额工具/平台实际项目阅,如 Hadoop /HBase /Hive /Spark
    /Storm 等等,并熟悉所利用工具的技能原理、主要特色;
  3. 熟识主流大数目工具/平台实际部署架构和核心运维,具备架构设计能力,至少承担好1只海量数据有关产品还是项目的技能架构设计、实现者优先;
  4. JAVA基础扎实,理解IO、多线程、集合、并发包,对JVM原理来得的问询;
  5. 深谙常用机器上算法,如逻辑回归/贝叶斯网络/决策树/随机森林/GBDT/支持为量机/深度神经网络等,对于特征工程、算法选择与调优、测试评估有实战经验者先;
  6. 产生过互联网数据挖掘分析下的经验者优先,如用户画像/用户作为分析/推荐系统/内容爬取与追寻/情绪分析/语义提取等等;
  7. 愿意海量数据解析、挖掘,肯钻,对数码敏感,简书用户大加分。

薪酬范围

  • 30K-40K

干活地点

  • 上海市徐汇区

做事条件

简历投递

若您出趣味在我们,请将简历发送至
hr@jianshu.com
,邮件标题格式为:“姓名 – 大数量平台专家 –
X年做事经验
”。如果您以简书拥有账号,请于邮件被注明。收到简历后,我们见面由此邮件通知后续安排。

重新多职

2017年简书招募计划都拉开,请关注:
简书招聘专题

简书与你,不见不散:)