Skyline Web 端数据浏览性能优化

三维数据的效率一直是个瓶颈,特别是在Web端浏览一直是个问题,在IE内存限制1G的条件下,对于三维数据动不动几十G的数据量,这1G显得多么微不足道。虽然现在三维平台都是分级加载,或者在程序中采用数据分不同片区加载来降低一次性加载的模型数据,但是在浏览器中浏览三维数据崩溃问题仍然一直存在。最近在维护一个老的Skyline的项目,客户提出了在看二维数据的同时也可以看三维数据,需求很简单,实现也很容易,唯一的问题是浏览效率,能不能浏览?浏览效率怎么样?而且政府单位的电脑配置都是很一般。毕竟也做了这么多年的Skyline开发,明知有挑战,那就干吧。

首先,拿到项目的三维数据,一看数据量40几G,分了21个模型片区,每个片区差不多5平方公里,片区里面分了建筑模型图层和其他模型图层,建筑图层是shp+xpl2,模型图层是3dml。那就先试试数据本在本地,建个Web浏览页面,在自己4G显存,16G内存的机器上跑一下。发现建筑模型初始时可以看见,浏览一会消失后,再回来看建筑模型,死活加载不出来了,一看IE内存800M了,显然其他模型图层(3dml格式)把内存都占满了,流模式加载的建筑模型被“抛弃了”。显然直接使用现有数据这种方式是不行的了。

第二,既然xp2+3dml 这种组合不行,那就我房屋模型也打包成3dml,打包后5平方公里竟然有4G多的数据。数据在本地,在页面上浏览,好了,不会出现建筑消失后再也加载不出来的情况了,但是IE内存也接近1G,CPU可以达到60%以上,我这CPU是i5 3.30G,各种不稳定因素,这种方法也不行。

第三,Skyline 出了7.0版本,是64位的软件,那就来试下在Web端,修改web页面ActiveX 控件,结果发现竟然不支持,说是IE32位不支持64位程序,怎么改都不行,那这方法也不行。不过Pro7.0 在PC端加载数据的效率确实高,应用程序占用内存能达到3G以上,6.6版本 扩展大内存后,也只能达到2.5G左右。以后64位系统是趋势,skyline7.0 ,伟景行8.0版本,ArcGIS Pro 都是64位的,超图的8C还没关注,应该都是了。

第四,那只有考虑降低数据精度了,跟客户商量下,保证效率和文档性的前提下,可以降低模型精度。那怎么降低呢,首先数据肯定是3dml 格式的了,现在一个片区其他模型有1G的大小,建筑4G大小。降低原则,先把数据量降低一倍,其他模型数据在规划行业中相对没那么重要,可以适当降低。利用CityBuilder 把其他模型数据的精度改为0.5p/m,发现数据量将为500M,房屋模型精度改为0.25p/m 和0.125p/m,生成后0.25P/m大小位2.4G,0.125p/m位3.1G。实际发现0.25p/m的数据精度太差了。那就把0.125p/m的房屋和0.5p/m的其他模型在web端浏览,发现IE占用内存也是800多M,但是CPU 使用最大也就40%多。似乎内存问题还是没能解决。这里有个基本的标准1平方公里房屋模型400M,其他模型100M为最佳效果浏览效果,纯经验。

以上过程说明,只要skyline浏览数据量超过1G,IE占用的内存肯定会达到IE的限制,要解决性能问题,一个还是要尽量分区,分区范围小一点,第二点就是要用3dml格式数据,第三还是降低一些数据精度。

.

时间: 2024-11-04 10:14:11

Skyline Web 端数据浏览性能优化的相关文章

Qt高级——Qt数据可视化性能优化

Qt高级--Qt数据可视化性能优化 一.数据可视化简介 1.数据可视化简介 数据可视化即采用图形图表等对采集的数据进行展示,可以非常直观的查看传感器采集到的数据.本文将使用Qt的标准组件QTableWidget.标准模型.自定义模型分别实现对数据的表格展示. 2.系统环境 个人PC:ThinkPad T450操作系统:RHEL7.3 WorkStation内存容量:8G磁盘容量:SSD 100GCPU:Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz 二.标准界面

HTML5前端(移动端网站)性能优化指南

HTML5是一种最新发布网页构架的普遍模型,是构建对程序.对用户都更有价值的数据驱动的Web的前端技术框架,它的价值在于融合CSS/javaScript/flash等众多前端开发技术,更多的体现在对交互的理解和视觉设计的还原上. HTML5框架可以提升网站的访问速度,通过优化前端将响应时间加快,使用户的等待时间减少,所谓前端是指在客户端通过浏览器发送了一个请求,除去后台系 统用户请求.执行数据查询并对结果进行组织所需要处理消耗的时间,在涌现的新技术中,JavaScript和一套新的API纯脚本技

从web现状谈及前端性能优化

从web现状谈及性能优化 原文出处:<Karolina Szczur: The State of the Web> 性能优化指南The Internet is growing exponentially, and so is the Web platform we create. Often though we fail to reflect on the greater picture of connectivity and contexts the audience of our work

web前端9大性能优化方案汇总

网页的性能问题是产品开发过程中的一个重要的环节,在产品成功地把功能实现后,性能能好与坏就直接影响了用户体验,以至于影响了产品的成败! 作为web前端开发者,对前端部分进行性能上的优化,是责无旁贷,刻不容缓的工作.下面简介一下9种性能优化方案. 一.罪魁祸首是http请求 一般网页,80%的响应时间花在下载网页内容(images, stylesheets, javascripts, scripts, flash等).减少请求次数是缩短响应时间的关键!可以通过简化页面设计来减少请求次数,但页面内容较

全方位分析web前端如何进行性能优化

前言: 最近刚刚完成项目,空闲一段时间,想起之前有被问起怎么对前端进行性能优化,自己也是脑中零零散散的总不成体系,现特来总结,欢迎补充指教. 1.整体资源 (1)js.css源码压缩 (2)css文件放到文档顶部,js 文件放到文档底部 因为浏览器渲染网页是自上而下的,用户第一眼见到的是页面,先加载页面相关的提高页面加载速度,另外避免js在页面没有完全加载完成操作DOM带来错误 (3)进行CDN托管(具体可参看https://div.io/topic/930) (4)data缓存 2.css (

数据库插入或者更新大批量数据的性能优化

对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长.特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久.因此,优化数据库插入性能是很有意义的. 经过对MySQL InnoDB的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考. 1.一条SQL语句插入多条数据 常用的插入语句如: INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUE

【转】mongodb可以通过profile来监控数据 (mongodb性能优化)

开启 Profiling  功能 ,对慢查询进行优化: mongodb可以通过profile来监控数据,进行优化. 查看当前是否开启profile功能用命令 db.getProfilingLevel()  返回level等级,值为0|1|2,分别代表意思:0代表关闭,1代表记录慢命令,2代表全部 db.setProfilingLevel(level);  #level等级,值同上 level为1的时候,慢命令默认值为100ms,更改为db.setProfilingLevel(level,slow

WEB 移动端 CSS3动画性能 优化

很多时候,我们在开发移动端的时候要使自己的网页兼容不同的机型,很多时候会采用CSS3动画,但是很多时候在安卓机下,动画明显会出现卡顿,很难看,那么这里我介绍几个CSS 属性进行硬件加速那么就会得到明显的效果: opacity: 1; -webkit-backface-visibility: hidden; -webkit-transform:translate3d(0,0,0); 这三个属性选其中一个放在要使用动画的元素中即可,很多时候你使用了-webkit-transform: 这个属性做了其

Django之使用redis缓存session,历史浏览记录,首页数据实现性能优化

Redis缓存session 配置Django缓存数据到redis中 # diango的缓存配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", # 用户的session信息,历史浏览记录存储在redis数据库9中 "LOCATION": "redis://127.0.0.1:6379/9", "OPTIONS