缩略图

双格式导航数据访问接口的性能对比与优化策略

作者

刘泽林

上海吉图软件开发有限公司

前言

在地图导航技术快速发展过程中,地图数据格式呈现出多样化态势,NDS 与公司自有的NGX 并存,这种数据格式对上层导航应用带来较大的挑战,开发人员需适配多种接口,导致开发难度增加。为解决这一核心问题,本文结合导航地图统一数据访问接口研发项目,通过对双格式导航数据访问接口性能进行对比与优化研究,保证接口在满足功能需求的同时,有效避免对现有导航引擎造成较大的变更,并高效推动导航应用的开发与发展,同时对NDS.Live生态下多源数据的混合应用进行探索。

1 项目概况

导航地图统一数据访问接口研发项目旨在解决导航地图数据格式异构性问题,由于行业并存 NDS(通用导航数据标准)与公司自有 NGX 格式,导致上层应用在数据接入、解析与更新时需要适配多种接口,导致开发复杂程度以及维护成本显著增加,通过研发统一的导航地图数据访问接口,基于标准化数据交互层,构建包含数据抽象层、格式适配层与应用接口层的统一访问框架,屏蔽底层数据格式的差异,以推动导航应用的高效开发与迭代。

2 双格式导航数据访问接口性能评测场景与指标

2.1 评测场景

在该项目中,双格式导航数据访问接口性能的评测场景如下: ① 混合格式访问场景。在同一路径规划中混合使用NDS 与NGX 数据,如规划一条从城市 A 到城市 B 的路线,其中,在高速公路部分使用 NDS 格式的道路数据,在城市内部道路使用 NGX 格式数据。监测数据访问接口是否能够整合两种不同格式的数据,是否因双格式而导致路径错误或中断,并将双格式和单一格式路径规划时间作对比,以此评估和验证混合数据源场景下访问接口的兼容性以及性能表现。 ② 高负载数据加载场景。模拟真实导航场景,如车辆在市中心行驶时,需要快速加载大量地图数据的情况,同时加载 NDS 与 NGX 两种格式数据,访问 1000 个高密度Tile,模拟 100 个用户并发调用接口,以此触发数据转换与要素读取,测试大规模数据下,接口的处理性能,评估其是否出现加载失败或者卡顿的情况。 ③ 复杂功能调用场景。在导航地图中同时调用地图显示、路径规划、语音导航等多种功能模块,并针对每一种功能模块同时访问NDS 与NGX 两种格式的有关地图数据,测试该场景下接口对不同格式数据的处理能力,是否会因数据交互而导致性能下降。

2.2 指标

2.2.1 响应时间

在双格式导航数据访问接口性能评测中,响应时间指的是从发起地图数据访问请求到接收到完整数据所消耗的时间。响应时间的长短表明接口的实时性能,响应时间越短,说明接口的实时性越好,能更快地为导航应用提供数据支持。

2.2.2 吞吐量

吞吐量指的是在单位时间内接口可以处理的请求数量,这是衡量接口性能的关键指标。在该项目中,单位时间内接口每秒处理请求数越多,即吞吐量越高,意味着接口可以在短时间内处理大量的地图数据,表明接口具有较强的数据传输能力。

2.2.3 错误率

错误率指的是在接口请求中出现错误的比例,错误率较高时,可能意味着接口存在问题,说明接口在数据处理过程中的稳定性较低,此时则需要对接口进行优化或修复。

2.2.4 可扩展性

可扩展性指的是在负载增加的时候接口可以保持良好性能的能力,在该项目中,当地图数据访问请求较大时,接口是否可以保持稳定的响应时间、吞吐量。

图1 NDS 数据分层组织结构

3 双格式导航数据访问接口的性能对比

3.1 混合格式访问场景下性能对比

该场景下,NDS 和 NGX 数据被同时用于路径规划。NDS 数据组织方式具有模块化和层次化的特点,一份 NDS 数据就是一个数据库,按照这一标准生产 NDS 数据,获得的数据格式是一致的。如图1 所示,为NDS 数据分层组织结构。NDS 通过 Building Block(构建块)的方式组织数据,可以分层分区存储,针对需要更新的地图数据,能够快速定位和替换。对于独立的构建块,依据功能可以将其分为四种类型: ① 索引结构,如全文搜索构建块; ② 高级可视化,如3D 对象构建块; ③ 导航与地图显示,如基础地图显示构建块; ④ 高级自动驾驶,如定位地标构建块。

NGX 与 NDS 在数据组织方式上是相近的,主要是在划分层级及划分格网的规则和道路拓扑模型上存在差异,从而造成在混合应用时效率下降,错误率上升,尤其是在复杂场景下,可能会导致路径规划中断或错误。如表 1 所示,为 NDS 与 NGX 在路径规划上的性能表现。从中可以看出,NDS 道路拓扑设计上的优势,在路径规划上有着较高的效率,但因为不是公司引擎支持的原生数据格式,造成错误率高;NGX 则因未对路径规划依赖的道路拓扑模型进行优化,规划时间增加 40% ;在双格式数据融合时,由于两种格式的道路等级、要素定义不一致,路径规划失败的概率较高,同时因为NDS 需要进行格式转换,性能下降较多。

表1 路径规划性能对比

3.2 高负载数据加载场景下性能对比

NDS 采用SQLite 嵌入式数据库储存地图数据,通过采用分层分块的方式,结合地图数据内容,将其分为六大组成部分,即地图显示、道路规划、POI、交通信息、名称、语音表达。在高负载数据加载过程中,NDS 的数据结构相对规则,能够利用其嵌入式数据库的高效检索特性,有效提升数据加载的速度,接口在高并发请求下可以快速调度资源读取与传输数据;而NGX 格式因其自由特性,在高负载情况下,数据读取的优先级与调度机制相对复杂,高密度 Tile 加载和并发调用上存在性能瓶颈。

如表 2 所示,为数据加载效率对比。NDS 数据因分层规则及道路拓扑模型的优势,虽然数据转换有额外的消耗,但总体性能上与NGX 差异不大;而混合格式访问需进行数据协调,导致额外性能损耗,性能下降较多。

表2 数据加载效率对比

3.3 复杂功能调用场景下性能对比

在复杂功能调用场景下,NDS 格式数据因其在Tile 内容组织上的优势,接口吞吐量较高,可以为多个功能模块提供数据,而NGX 格式数据的吞吐量在多模块并发请求时存在一定的限制,特别是在3D、DTM 等对于数据量有着较高要求的功能模块处理中。在地图显示功能中,NDS 格式数据支持每秒更新地图画面的次数高于 NGX 格式数据;在语音导航功能中,NDS格式数据每秒处理语音指令请求的次数高于NGX 格式数据。当采用双格式数据时,接口每秒更新地图画面的次数以及每秒能够处理的路径规划请求次数都低于单格式数据。如表3 所示,为高并发场景下的性能对比结果。

表3 高并发场景下性能对比

结束语

通过对双格式导航数据访问接口性能进行研究,揭示不同场景下,接口处理NDS 与NGX格式数据时表现出的性能和稳定性差异,明确双格式应该存在的性能问题与稳定性问题。通过结合对比结果,从数据模型、访问接口等多个维度提出对应的改进措施,有效提升接口的性能,为导航应用的稳定运用提供坚实的保障。

参考文献:

[1]潘茜茜.GPS 技术在导航信息接口开发的应用[J].舰船科学技术,2020,42(08):142-144.

[2]贺成艳,郭际,郝振圆,等.北斗卫星导航系统伪距偏差特性及减轻措施研究[J].电子学报,2021,49(05):920-927.