# WebP 测试

田银伟 2020.12.07

# iserver 下载运行

# 1、下载 iserver

超图下载

iserver

# 2、解压后运行 startup.bat

starupbat

# 3、如果出现 Please add log4j-core to the classpath 错误,则说明缺少 log4j-core-x.xx.x jar 这个包,需要下载。

error

① 下载 log4j-core.jar 包 log4j-core 包下载地址

log4j-core

② 解压下载的包,找到包中的 log4j-core-2.11.1.jar 复制到 iserver 的 lib 文件夹下,重启 startup.bat 即可。

copyjar

# 4、出现 org.apache.catalina.startup.Catalina.start Server startup in ... ms 则表示 iserver 启动成功。

org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8090"] org.apache.catalina.startup.Catalina.start Server startup in 55467 ms

iserversuccess

# 5、网页中输入 localhost:8090/iserver/manager 进入 iserver 网址。第一次进入需要注册账号等操作。

iserberweb

注册的账号及密码:

password

注册完成,提示 iserver 首页:http://localhost:8090/iserver/

iserver 服务管理器:http://localhost:8090/iserver/manager/

finish

# 测试数据准备

# 1、下载影像数据

① SASPlanet_200606.zip,下载 SASPlanet.exe 软件,用以下载影像数据。

② 运行 SASPlanet.exe,下载影像。(也可基于其他渠道获取影像数据)

downloadimage

# 2、导入 SuperMap 分别生成 WebP 缓存、PNG 缓存、JPG 缓存,用于后期测试。

① 新建 weihaitestdata.udbx 用于测试备用。

udbx

② 导入 tiff 影像数据。(导入 weihai 文件夹下的 weihai.tiff 影像,后面用于生成缓存)

importdata

③ 复制 weihaitestdata.udbx 数据,分别命名为 weihai_jpg.udbx、weihai_png.udbx、weihai_jpg_png.udbx、weihai_webp.udbx,分别用于生成 jpg 、png、jpg_png、webp 缓存,并记录各个缓存类型的生成耗时。

udbxs

tocache

JPG 缓存及其生成耗时:3 分 6.67 秒

jpgcache

PNG 缓存及其耗时:5 分 39.13 秒

pngcache

WebP 缓存及其耗时:3 分 50.79 秒

webpcache

JPG_PNG 缓存及其耗时:3 分 17.05 秒

jpgpngcache

④ 影像数据及其生成的缓存大小对比(影像数据大小为 1.39 GB,jpg 缓存大小为 49.6 MB,jpg_png 缓存大小为 52.1 MB,png 缓存大小为 303 MB,webp 缓存大小为 19.3 MB)。

compare

# 3、 各类缓存数据的加载显示效率

① 分别新建 weihai_jpg 场景,添加影像缓存图层,导入生成的 weihai@weihai_jpg 缓存影像,并保存为 weihai_jpg.smwu。

以此类推,生成 weihai_png.smwu(场景名称:wehihai_png,导入的缓存影像为:weihai@weihai_png)。保证各场景,定位至同一个级别。

smwu

samelevel

allsmwu

② 分别发布为 iserver 服务。

iserver

③ 发布成功后,查看服务。

successiserver

④ 直接通过 iserver 进行影像查看。

view

⑤ 各影像查看结果:weihai_jpg 和 weihai_jpg_png 加载不出影像,提示 Failed to load resource: th serer responded with a status of 404(),而 weihai_png 和 weihai_webp 可以查看影像。

result

⑥ 同时查看 weihai_png 和 weihai_webp 影像,查看显示效率。经对比发现,未发现在显示、渲染效率上有明显的肉眼差异。

iearthopen

# 4、参数对比结果表

类别 大小 生成缓存耗时 iserver影像查看结果 iearth查看
TIF 1.39GB - - -
JPG 49.6MB 3分6.67秒 报错,无法查看 报错,无法查看
JPG_PNG 52.1MB 3分17.05秒 报错,无法查看 报错,无法查看
PNG 303MB 5分39.13秒 正常 正常
WebP 19.3MB 3分50.79秒 正常 正常

由上可以看出,基于同一个影像数据,生成 JPG 缓存 耗时最短,但是发布的 iserver 服务无法正常查看,通过代码运行也无法查看,且 JPG 缓存的大小并不是最小的。生成 WebP 缓存耗时处于中等水平,与 JPG、JPG_PNG 缓存生成时间的差别没有非常大,而 PNG 缓存生成时间则相当漫长且数据量最大。

因此从数据量上考虑,WebP 是最佳选择。而综合考虑,WebP 影像缓存也是推荐的选择。但是 PNG 影像在系统中显示、渲染时,从肉眼上,与 WebP 并无明显差异。所以,为了一探究竟,需要从系统运行的毫秒级别去比较。

# 5、毫秒级对比测试

由于从 iearth 分别打开 PNG 缓存影像 和 WebP 缓存影像进行对比时,肉眼未观察到明显的差异性,因此从 Web 端,查看系统的运行与数据渲染、加载的毫秒级差异。对比如下:

① 初次显示场景时的耗时对比:

类别 大小 系统初次进入时数据渲染耗时 影像金字塔层级 网络请求次数 耗时
PNG 303MB 11ms 6、7 8 11ms
WebP 19.3MB 6ms 6、7 8 6ms

firsttiem

② 显示影像个层级时的耗时对比:

影像金字塔层级 类别 耗时 类别 耗时
6 PNG 6ms WebP 3ms
7 5ms 3ms
8 6ms 4ms
9 19ms 4ms
10 35ms 10ms
11 54ms 6ms
12 163ms 12ms
13 38ms 4ms
14 65ms 7ms

③ 显示到最高层级时的总耗时对比:

alltime

④ 相同请求次数,传输数据大小和调用资源大小对比:

allresource

可以看到,都为请求 53 次时, WebP 数据页面的传输数据大小为 5 MB,调用资源大小为 5.9 MB,而 PNG 数据页面的传输数据大小为 49.0 MB,调用资源总大小为 104 MB。

# 6、总结

① WebP 影像缓存的数据大小最小,生成 WebP 影像缓存的耗时居中。

② WebP 与 PNG 影像缓存的显示和渲染在当前同一数据源生成、同一场景、同一网络的环境下,无明显的肉眼差异。

③ 同一数据源生成、同一场景、同一网络的环境下,在毫秒级别的对比上:

A、场景的初次加载渲染时, WebP 影像缓存数据显示的耗时更短。

​ B、在各个影像金字塔层级的显示渲染上,WebP 影像缓存数据的耗时都明显小于 PNG 影像缓存数据。

​ C、在相同网络请求次数下,Web 影像缓存数据页面的数据传输量明显小于 PNG 影像缓存数据页面的传输量。

因此,综合来看,影像缓存数据建议以 WebP 缓存形式进行处理、渲染、显示。