1、暴风影音 5,启动如何提速 3倍客户端 “ 快时代 ” 技术分享为什么要快?调查 表明:对暴风影音最不满意的原因中关于 “ 快 ” 的要求 如下: 使用过程响应慢( 22.6%) 要求快 在线视频播放卡( 13.3%) 要求快 广告方面的抱怨( 34.8%) 已经进行了 4轮大扫除 说不清楚( 14.9%) 其他缺点( 14.4%)有将近 35.9%的用户体验表明,用户要求一个 “ 快 ” 的播放器启动要变快,遇到的两个问题( 1) 启动软件时,如何将不必要的事情扔掉?重构: 将原有复杂架构下各个模块的复杂关联去掉,保证每个模块的职责单一( 2) 如何能让界面最快的展现出来?极速皮肤引擎 :将
2、加载和显示皮肤的速度做到极致1. 重构:暴风新旧架构对比无独立的皮肤引擎业务子系统 n对比暴风影音 3:暴风 影 音 5的架构设计特点如下: 组件化、模块化、子系统 化设计 分层设计,松藕合设计要求 皮肤引擎与业务逻辑分离式设计业务子系统 1相互调用相互调用相互调用暴风 3播放器基础组件2.1 极速皮肤引擎:皮肤架构设计暴风影音 3播放器无独立的皮肤引擎对象管理器JS脚本引擎XML加载器暴风影音 5播放器皮肤引擎皮肤解析器 对象管理器文件加载器图片管理显示管理皮肤元素库元素事件管理对比暴风影音 3:暴风 影 音 5的皮肤引擎设计特点如下: 对于冷启动的优化,让硬盘限制在可接受的 范围 图片资源
3、的优化,带来启动速度的质变 显示优化锦上添花,达到超快体验相互调用相互调用2.2 极速皮肤引擎:优化的核心手法优化核心手法读取优化加载优化代码优化显示优化自定义存储自定义压缩对象重用九宫 格 应用2.2.1 IO读取优化皮肤优化 DLL交叉优化读取 优化DLL交叉优化 减少主程序的静态链接 DLL。 业务 DLL按需加载。优化皮肤 自定义 文件存储格式,减少文件读取交数,加速读取速度。 自定义 压缩算法,减少文件 IO读取。2.2.1 IO读取优化结果2.2.2 加载 优化加载优化资源优化 多 XML描述 首 界面元素重用优化 图片 对象重用 显示 对象重用其它优化 图片 显示 优化2.2.3 代码优化Region优化Visual C+基础库的选择代码 优化VC基础 库的选择 使用 WTL做为基础 库 为什么选择 WTL?Region优化 采用更高效的算法,让 Region窗口速度 更好 对于常见圆角窗口,每个角只处理 10*10像素