Cliqz 乌尔解析器
快速执行 url 解析, 主要是 API 兼容标准 URL 类, 同时 平均快2-3倍。 对 URL 组件的评价是懒惰的,所以执行 对所有读取的用例应快速.
已知的标准 URL 差异 :
- 参数通过
URL.searchParams.entries()仅用decodeURIComponent这与以一些微妙方式解释的标准不同. - 您可以直接通过 :
URL.searchParams.params这儿 比使用传动器快20%. - 参数字符串( E)
;已解析并可通过URL.parameters。 。 。 . - 域解析用 转子 内置。 这个
URL.domainInfo属性返回 tldts 的输出parseHost方法. - 主机名验证未在初始剖析中完成 。 这个
isValidHost()提供了方法 这个目的. - 所有具有有效权限的 URL 都会获得一个
origin,无论协议方案。 这不同于 标准 这只针对一套已知的计划.
安装
npm install @cliqz/url-parser
使用量
const parsed = new URL('https://www.example.com');
parsed.hostname // == 'www.example.com'
业绩
我们以从热门网站收集的25万个URL列表作为基准 标记器基准我们比较 两个用例:
URL对象创建 :new URL(url)- 查询字符串解析 :
new URL(url).searchParams.entries()
我们比较了每个平台的参考执行情况:
- 节点 :
URL类从url图书馆 - Firefox: (英语)
window.URL - 颜色 :
window.URL - 萨法里:
window.URL
| 环境 | 使用大小写 | 参考文献:urls/s | Cliqz 解析器: urls/ s | 加速 |
|---|---|---|---|---|
| 节点 11 | new URL() | 149,514 | 1,577,711 | 10.5x 较快 |
| 节点 11 | searchParams | 140,544 | 198,340 | 1.4x 较快 |
| 火狐69号 | new URL() | 268,066 | 1,043,877 | 3.9x 较快 |
| 火狐69号 | searchParams | 119,207 | 354,793 | 3.0x 较快 |
| 铬. 75 | new URL() | 366,294 | 1,721,903 | 4.7x 较快 |
| 铬. 75 | searchParams | 144,309 | 283,956 | 较快2.0x |
| 萨法里 12 | new URL() | 656,930 | 1,525,078 | 2.3x 较快 |
| 萨法里 12 | searchParams | 264,481 | 437,738 | 1.7x 较快 |
所有基准都运行在一款2015年中期Macbook Pro上,2.5GHz Intel Core i7,16GB.