- 1.50 MB
- 2022-04-29 14:33:42 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'无线地图的数据压缩和性能优化!!作者:高德软件曾琨!时间:2014.4!!
地图使用者因性能问题引发的尴尬流量伤不起电到时用方恨少!卡……越急越卡地图用户的户外使用场景无WIFI信号覆盖差环境陌生、心情焦虑无法充电、充值导航时网速赶不上车速联不上网警惕因性能问题果断删除!
为何性能问题如此突出?地图应用占用的移动资源最多!●map应用流量大!●计算量大!地图渲染、导航计算!●利用传感器等硬件资源最多!GPS、加速度计、陀螺仪、音频流、GPU、照相机!●长时使用场景多!导航、看路况、路况播报
App开发者的现状!●疲于满足产品功能需求,却忽略性能问题!●功能越来越多、速度越来越慢!●界面越来越华丽、操作越来越慢!●拿来主义,对底层缺乏了解,优化无从下手!●性能优化更多依靠经验,多凭感觉App-要功能,更要性能!!l看不见却摸得着的直观感受!l功能、性能两手抓,设计之初既要通盘考虑!l优化是持续的和无止境的!!
App性能优化面面观数据流量流畅度微观准则珍惜每一个比特珍惜每一个时钟周期珍惜每一次I/O连接电量存储宏观准则不断探索更优的设计方案五个维度总是优先作最重要的一件事
从Tile说起->大场景海量地图的分治式管理全球地图数据的瓦片金字塔!!Level1Level2Level3Tile是图库管理的最佳粒度!•存储需求!•索引需求!Tilequadkey:13102131201•计算需求!
App流量优化珍惜每一个bit数据流量流畅度l寻求最合理的数据流程!l上、下行数据量最小化!l使用离线方案和缓存降低流量!连接电量!!存储
上行数据的优化技巧●使用短地址和短参数!●多用GET,少用POST!●列表项的压缩eg.1.tiles紧缩式!ts=1321211021;1321211003;1321211030;1321211023;1321211024!->ts=1321211021;003;030;023;024!2.tile的binnary式!1-13212110212031203121->[416d16262767]
下行数据优化-地图数据包的压缩●矢量化地图及参数化!●地图的无损压缩!●地图的有损抽稀!●无效数据的剔除:幅面POI的智能沉降筛选法!●栅格数据的有损压缩!●使用zlib/gzip压缩
使用矢量和参数曲线减少数据量Vector144BRaster440BBezier32BVector32B
矢量数据的节点压缩LB(2254240,615600)Offset(short)offset+增量(varshort)P0(2254270,615680)P0(30,80)P0(30,80)P0(2254300,615660)P0(60,60)P0(30,-20)P0(2254330,615660)P0(90,60)P0(30,0)P0(2254360,615665)P0(120,65)P0(30,5)P0(2254520,615700)P0(260,100)P0(140,35)P0(2254700,615850)P0(460,250)P0(250,150)
使用有损压缩降低数据量道路数据的Douglas-Peuker抽稀面状数据的抽稀
地图无效数据的剔除-POI的智能沉降筛选法SortedPoiListA01A02A03A04A05A06A07A08A09A10
挑选最佳的调色板数压缩栅格地图P256,65KP128,59KP32,45KP16,28KP8,19KP4,15K
数据流程优化-交通信息数据的更新优化前优化前优化后TMCTileServerTMCTileServerHeartbeatTileTiles5minsdataTilerespsonsrequeestAmapClientRefreshMd5TmcRateend8entity问题:•内容无变化的数据重复下载EqualsN(update)•无数据区域的无效请求Local?•数据更新不及时reusYeTilescacheNewhbcycleAmapClient
流畅度优化数据流量流畅度体验优化效率优化!连接电量苹果对地图的帧速率要求?!存储!70-80FPS!!!
优化用户的体验感知Ø总是优先作最重要的一件事!Ø总要最快速的给用户操作以响应!•构建数据流实现大数据返回的快速响应!地图数据流!!•重点内容优先加载!地图中心块优先加载和显示!!•慢速操作的异步化!启动时UI线程的净化,磁盘I/O、unzip、Png/Jpeg解码、三角剖分异步化!!•控制程序包大小!这些你是否真的需要吗?sqllite、boost、cocos2d!dex运行时动态加载优化启动
计算效率优化-珍惜每个时钟周期Ø以下操作花费时钟周期最多的一项?!1.绘制一张128*128的bitmap到屏幕!2.绘制一条P(20,30)-P(300,280),12像素宽的反锯齿线!3.确定一个点P(116.39,39.92)所在的城市!4.200个整数的排序!寻找瓶颈和性能优化的利器:!!•xcodeinstruments、Shark!•AndroidTraceview!•rationalquantify
充分利用硬件加速计算-强大的移动GPUAdrenoPowerVR320Sgx543mp3三角形输出率200M/s100m/s像素填充率3200m/s3000m/sGFLOPS57.628.7Cpu8xgpu72x
HowtouseGPUtomake……TheyuseGPUtomakemoneyWeuseGPUtomakesmartmaps
地图的三角形世界2D-3D:使用OpenGLES渲染地图l多边形三角剖分!l道路线型剖分及反锯齿!l文字的纹理贴图!l3dModel的快速绘制!l固定管线->Shader
缓存和Rtree索引的应用l缓存应用字标标离交3D分模注注线通Obj幅缓纹上索信式ect存理下引息在缓缓文缓图线存存缓存块地RLU规则存缓图存缓存l利用Rtree构建空间索引加速查找
连接优化l减少连接数、连接归并!地图请求的连接串行化!数据流量流畅度l充分利用带宽!保持2个连接通道和双线程并发!l连接的保持和复用!l下载线程的带宽控制和中断!连接电量l大数据包启用断点续传!l运营商IDC建设!存储l服务的硬指标(50ms)
更多的优化技巧和经验●暗色风格可以节电!●通过opengl的dirty模式节省电量!数据流量流畅度●按场景合理控制帧速率!●避免建立过多细碎文件,尽量汇聚成单一文件!●动画特效适可而止连接电量存储
回顾数据流量连接•数据流程的最优化设计•使用连接归并减少次数•请求的上压下减•保持2个请求线程•后台下载的中断•连接复用和保持流畅度!•体验优先作重要的事电量、存储•构建stream加速对大数据响应•利用工具进行CPU优化•Openglview的dirty模式和fps限制•利用GPU优化地图•细碎文件的合并•常亮时的暗色风格选择!
Thanks!'
您可能关注的文档
- 小故事大教育演讲PPT.ppt
- 电影音乐之声中的LOVE 英语课主题演讲PPT.ppt
- 培训演讲PPT展示模板最新版免费下载.ppt
- 实现中国梦,青春勇担当演讲PPT.ppt
- 英语课前演讲PPT 十二星座.ppt
- 英语演讲PPT——恐惧.ppt
- 励志演讲PPT课件.ppt
- 《游戏改变世界》作者简·麦格尼格尔演讲PPT-1.pdf
- 英语课前演讲PPT.ppt
- 见微知著---搜狐微博市场总监演讲PPT.pdf
- Aboutdreams关于梦想的英文演讲PPT.ppt
- 《冰雪奇缘》英语演讲PPT.ppt
- 傲慢与偏见英语英文课前演讲PPT.ppt
- 关于修身自律的演讲PPT.ppt
- 励志人物尼克胡哲演讲PPT.ppt
- 大学英语课堂小演讲PPT.ppt
- 忠犬八公的故事演讲PPT.ppt
- 英语演讲PPT(宫崎骏).ppt