姚金明
(山东省国土测绘院,山东 济南 250013)
地理信息数据的处理是GIS从业人员的必备技能,也是常用功能,使用频次较高。随着计算机硬件的指标越来越高,如何充分挖掘计算机本身的潜力来加快数据的处理速度一直是数据处理人员考虑的问题。传统的提高处理效率的方法主要有提高硬件配置、优化流程、改进函数算法等[1]。本文以AE开发的工具为例,探讨虚拟硬盘对地理信息数据处理效率的影响。
大家熟知的硬盘主要有机械硬盘和固态硬盘,机械硬盘的读写速度比较慢,单位存储空间价格便宜,适用于数据存放;固态硬盘的价格比较贵,硬盘寿命比较短,出现故障数据不易恢复,很多人会换固态硬盘来提高性能[2]。内存本身读写速度非常非常快,与普通的机械硬盘相比,速度有上百倍的提高,因而出现了虚拟内存技术,即将内存空间通过工具转换成硬盘,解决了部分机械硬盘相对于CPU、显存等其他硬件的读写速度瓶颈。本文将采用Primo Ramdisk进行内存的虚拟化。普通用户一般使用虚拟硬盘存放系统临时文件和IE缓存来加快网页浏览的速度,并能减少机械硬盘的碎片化,在一定程度上能够提高操作系统的流畅度[3-6]。
对ArcGIS的二次开发来说,效率也是一个重要的考虑因素。ArcGIS在我国GIS软件行业具有一定的优势[7],经过行业专家的优化之后,其函数、算法的效率对一般的开发者来说提升空间已经不大。但随着电脑CPU计算速度的加快,硬盘系统仍是限制电脑性能的最大瓶颈,虽然现在硬盘有了长足进步,但它的速度与CPU、内存相比仍是太慢[8-9]。实践中发现,硬盘IO(磁盘的输入和输出(Input和Output))的表现对于GIS矢量数据处理效率的影响是主导因素,因此,应该不断改进和完善GIS矢量数据处理工具,并进行特殊设计[10]。本文讨论在用户硬件足够强大的情况下(主要是内存足够大),使用内存模拟硬盘来提高数据的读写效率,以加快数据处理速度[11-12]。
本文在其他软硬件条件相同的情况下,将相同空间位置的GIS矢量数据分别在普通硬盘、固态硬盘、虚拟硬盘中,使用ArcGIS Engine二次开发工具进行处理,得出结果后对其进行分析比对。
测试环境的操作系统采用Windows Server 2008 R2 Enterprise,64位版本,使用的Microsoft.NET Framework 4.0架构,虚拟化硬盘软件采用了Ramdisk 1.6,64位版本,硬盘速度测试软件为Crystal Disk Mark 5.5.0,64位版本。
ArcGIS二次开发版本为ArcGIS Engine 10.0,桌面版结果查看工具为ArcGIS Desktop sp5 10.0,本文Engine对矢量数据的处理主要通过 IWorkspace2、IWorkspaceEdit、IFeatureDataset、IfeatureCursor和IFeatureClass等接口实现,transform method可以采用 affine、projective、similarity等,实现的主要功能为读取文件夹下面所有需要处理的数据,按照国家相关要求对数据进行处理,以实现数据的公开发行[13]。山东电子地图数据解密工具如图1所示。
使用电脑为惠普HPE-555cn台式机,CPU为I7-2600共4核8线程,主板为和硕2AB6,内存为三星DDR3 1 333 MHz 4 G×3共12 G,显卡为NVIDIA GeForce GTS440,显存3 G。其中,硬盘共3种:①传统硬盘为西数WDC WD60PURΧ-64T0ZY0,7 200 r/min,64 M缓存,容量大小6 TB;②固态硬盘为英特尔SSDSA2M160G2HP,120 G;③Ramdisk创建的逻辑虚拟硬盘,容量大小为3 G。
图1 山东电子地图数据解密工具
此次实验选取了同一空间位置的兴趣点、道路和居民地数据,并按实际需求进行了数据转换处理,涵盖了矢量数据处理包含的点、线、面,具有较高的代表性。从表格中可以看出,使用AE开发的工具纠正处理数据时,不同的存储装置所需要的时间差别很大。尤其是虚拟硬盘与普通硬盘相比,速度有上百倍的提高,基本与硬盘测速软件的结果一致。从表2、表3、表4中可以直观看出,虚拟硬盘比传统硬盘的效率大约有250倍提高,比固态硬盘约有1倍提高,特别是对使用频率较高的工具来说,能节约大量时间。
普通硬盘、固态硬盘、虚拟硬盘的对比情况如表1、表2、表3、表4所示。
表1 普通硬盘、固态硬盘、虚拟硬盘测速表
表2 普通硬盘、固态硬盘、虚拟硬盘任务处理需要时间表
表3 普通硬盘、固态硬盘、虚拟硬盘时间比较表
表4 普通硬盘、固态硬盘、虚拟硬盘任务处理效率表
使用Crystal Disk Mark对3种硬盘进行了测速,其中,Seq表示顺序测试,k表示IO数据的大小,Q表示队列的深度,T表示线程数量。从表1中可以发现,虚拟硬盘比固态硬盘和普通硬盘读写速度分别约有几十倍和上百倍的提高。
传统的机械硬盘的磁头和碟片都属于机械装置,其移动速度和转速都有其极限,多年来提高并不大。固态硬盘和虚拟硬盘属于电子装置,其速度要快得多,尤其在使用AE二次开发工具处理GIS矢量数据写入存储的步骤方面。实践发现(没有相关公开资料介绍),在数据量稍大的情况下,会按照要素数量间隔很短的时间多次写入,对存储设备的响应时间要求比较高。针对这种情况,本文采用了硬件与软件协同的方法实现了对现有存储设备的扩展,使用虚拟硬盘对AE开发的工具进行优化,极大地提高了部分ArcGIS工具的读写速度,降低了数据泄密的可能性。这种方法对于使用频率较高的工具,具有较大的提升空间和较高的参考价值。
参考文献:
[1]何杰,郭燕妮,张博,等.基于SoPC和NFS的虚拟SATA硬盘[J].火力与指挥控制,2016,41(4):174-176.
[2]刘鹏,王煜.基于缓存系统架构的虚拟硬盘转换方法[J].天津科技,2017,44(7):37-38.
[3]胡元元.基于虚拟硬盘技术的高校电子阅览室分区域式管理研究[J].河南图书馆学刊,2016,36(11):52-54.
[4]阚文枭,黄秋兰,陈刚.桌面网格环境下虚拟化技术的应用研究[J].计算机工程,2017,43(3):11-17.
[5]王德胜,张伟哲,郝萌,等.云计算环境中虚拟机内存自适应调节算法研究[J].计算机科学与探索,2017,11(1):71-78.
[6]张柳,丁忠义,许继苹,等.基于ArcGIS的开发区土地集约利用评价——以江苏省铜山经济开发区为例[J].山东国土资源,2011,27(3):46-50.
[7]王海,毛继军,相恒茂,等.基于ArcGIS Server的电子地图兴趣点拾取技术研究[J].山东国土资源,2013,29(8):1-2.
[8]姚金明,相恒茂,韩海丰,等.天地图山东影像缓存方法研究与实现[J].山东国土资源,2017,33(5):78-80.
[9]魏磊,张建新.基于ArcGIS Engine无冗余地图瓦片裁切方法的研究[J].测绘与空间地理信息,2016,39(5):146-148.
[10]张衡,李通,肖鹏,等.机载LiDAR技术在山区高速公路勘测设计中的研究与应用[J].北京测绘,2016(6):95-97.
[11]蓝天.善用外力挖掘内存潜能[J].个人电脑,2013,19(4):76-77.
[12]陈新,王豪雄,吴业毅,等.利用 RAMDISK技术提高电子病历系统的文件访问性能[J].医疗卫生装备,2014,35(7):67-68.
[13]田怀启,吴满意,张长安,等.利用ArcEngine实现基于原始影像1∶10 000调绘成果的纠正[J].测绘技术装备, 2016(2):61-64.