三维数据的效率一直是个瓶颈,特别是在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格式数据,第三还是降低一些数据精度。

.

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

  1. DedeCMS数据负载性能优化方案简单几招让你提速N倍

    前文介绍了DedeCMS栏目列表页实现完美分页的方法,避免了大部分重复栏目标题对搜索引擎的影响,对SEO更有利.今天,分享一下DedeCMS数据负载性能优化的方法. 接触织梦也有三年多时间了,对它可谓 ...

  2. 大数据应用之HBase数据插入性能优化实测教程

    引言: 大家在使用HBase的过程中,总是面临性能优化的问题,本文从HBase客户端参数设置的角度,研究HBase客户端数据批量插入性能优化的问题.事实胜于雄辩,数据比理论更有说服力,基于此,作者设计 ...

  3. mongodb可以通过profile来监控数据 (mongodb性能优化)

    mongodb可以通过profile来监控数据 (mongodb性能优化)   开启 Profiling  功能 ,对慢查询进行优化: mongodb可以通过profile来监控数据,进行优化. 查看 ...

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

    HTML5是一种最新发布网页构架的普遍模型,是构建对程序.对用户都更有价值的数据驱动的Web的前端技术框架,它的价值在于融合CSS/javaScript/flash等众多前端开发技术,更多的体现在对交 ...

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

    从web现状谈及性能优化 原文出处:<Karolina Szczur: The State of the Web> 性能优化指南The Internet is growing expone ...

  6. (O)WEB:前端网站性能优化(原创)

    *从理论.实战编码.实战调试3个方面学习前端性能优化(包括页面加载时间和页面流畅度): -------------------------------理论----------------------- ...

  7. Mysql完全手册(笔记二,使用数据与性能优化)

    一.使用数据 1.使用变量 MySQL也可以让我们以用户自定义的变量来存储select查询的结果,以便在将来select查询中使用.它们只会在客户会话期间存在,但是它们提供一个方便有效的方法来连接查询 ...

  8. 一次EF批量插入多表数据的性能优化经历

    距离上次的博客已经有15个多月了,感慨有些事情还是需要坚持,一旦停下来很有可能就会停很久或者从此再也不会坚持.但我个人一直还坚持认为属于技术狂热份子,且喜欢精益求精的那种.最近遇到两个和数据迁移相关的 ...

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

    前言: 最近刚刚完成项目,空闲一段时间,想起之前有被问起怎么对前端进行性能优化,自己也是脑中零零散散的总不成体系,现特来总结,欢迎补充指教. 1.整体资源 (1)js.css源码压缩 (2)css文件 ...

随机推荐

  1. keras与sklearn的结合使用

    keras与sklearn的结合使用 新建 模板 Fly Time: 2017-4-14 引言 代码 引言 众所周知,keras目前没有提供交叉验证的功能,我们要向使用交叉验证,就需要与sklearn ...

  2. Android之QQ授权登录获取用户信息

    有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开 ...

  3. Linux下使用popen()执行shell命令【转】

    本文转载自:https://my.oschina.net/u/727148/blog/262987 函数原型: #include “stdio.h” FILE popen( const char co ...

  4. hdoj Radar Installation

    Problem Description Assume the coasting is an infinite straight line. Land is in one side of coastin ...

  5. 动态规划---区间dp

    今天写内网题,连着写了两道区间dp,这里就总结一下. 区间dp思想主要是先枚举f[i][j]中的i,再枚举j,再枚举一个1~j之间的变量k,一般是f[i][j] = max(f[i][j],f[i][ ...

  6. Principal Component Analysis ---- PRML读书笔记

    To summarize, principal component analysis involves evaluating the mean x and the covariance matrix ...

  7. php循环跳出

    PHP中的循环结构大致有for循环,while循环,do{} while 循环以及foreach循环几种,不管哪种循环中,在PHP中跳出循环大致有这么几种方式: 代码: <?php $i = 1 ...

  8. git clone 出现错误

    看了好多资料终于搞定了git 中clone命令报错这个问题,废话不多说直接上步骤希望对大家有帮助. 1   删除.ssh文件夹(直接搜索该文件夹)下的known_hosts(手动删除即可,不需要git ...

  9. elasticsearch模板 template

    https://elasticsearch.cn/article/335 elasticsearch模板 template 可以考虑的学习点: mapping的 _default_类型 动态模板:dy ...

  10. Java中final、finally、finalize的区别与用法

    1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构的一部分,表示总是执行.finalize是Object类的一个方法,在垃 ...