Dynamsoft JavaScript Barcode SDK性能解析

Dynamsoft JavaScript Barcode SDK性能解析
Dynamsoft JavaScript Barcode SDK是基于WebAssembly实现的。它的优势在于可以直接运行在任何平台的任何浏览器中。然而不同的浏览器,对WebAssembly的支持以及性能表现也是不同的。

不同浏览器的性能数据

影响WebAssembly的因素包括网络连接,硬件配置,以及浏览器。

Android

在安卓设备上,浏览器推荐使用FirefoxFirefox的性能要优于Chrome

设备 浏览器 首次加载耗时(ms) 缓存加载耗时(ms) 条码检测平均耗时(ms)
HUAWEI Mate20 CPU: Hisilicon Kirin 980 Chrome 70 4,998 3,873 234
HUAWEI Mate20 CPU: Hisilicon Kirin 980 Firefox 63 1,617 319 267

iOS

iOS设备建议iPhone 7以上,浏览器使用Safari

设备 浏览器 首次加载耗时(ms) 缓存加载耗时(ms) 条码检测平均耗时(ms)
iPhone 7 Safari 11.4 6,936 5,647 485
iPhone X Safari 12.1 4,211 4,001 378

桌面

Windows, LinuxmacOS上运行主流浏览器,性能比较接近。

设备 浏览器 首次加载耗时(ms) 缓存加载耗时(ms) 条码检测平均耗时(ms)
Win10 CPU: i7-4790 Chrome Version 70 (64-bit) 546 485 253
Win10 CPU: i7-4790 Firefox Quantum 63 (64-bit) 220 122 219
Win10 CPU: i7-4790 Microsoft Edge 42 339 112 1,778
Ubuntu: 16.0.4 Firefox Quantum 63 (64-bit) 396 238 256
Mac: 10.13.6 Safari 12 4,540 4,455 213
Mac: 10.13.6 Firefox Quantum 63 (64-bit) 290 195 272
Mac: 10.13.6 Chrome 71 (64-bit) 975 878 292

为什么Firefox的表现会优于Chrome?

Firefox

Firefox支持把编译之后的wasm模块缓存到IndexedDB中。这样通过缓存加载不需要再编译。

首次加载
Dynamsoft JavaScript Barcode SDK性能解析
缓存加载
Dynamsoft JavaScript Barcode SDK性能解析

Chrome

Chrome只能把wasm文件缓存到IndexedDB中,通过缓存加载的时候需要耗费编译的时间。

首次加载
Dynamsoft JavaScript Barcode SDK性能解析

缓存加载
Dynamsoft JavaScript Barcode SDK性能解析

原文链接

https://www.dynamsoft.com/blog/insights/best-practices-increasing-speed-dynamsoft-barcode-reader-javascript-edition/