# 小程序代码加固功能-性能说明
通过 Google V8 Benchmark Suite 测试,得到以下数据可供开发者进行参考:
# 代码体积
代码加固功能生成的代码体积相比经过压缩的原始文件,体积增大不明显。
| 测试指标 | 原始大小 | uglifyjs 压缩后 | 代码加固功能 |
|---|---|---|---|
| crypto | 60 KB | 34 KB | 60 KB |
| deltablue | 38 KB | 17 KB | 28 KB |
| earley-boyer | 203 KB | 107 KB | 130 KB |
| navier-stokes | 26 KB | 12 KB | 23 KB |
| raytrace | 40 KB | 20 KB | 36 KB |
| regexp | 136 KB | 109 KB | 171 KB |
| richards | 28 KB | 12 KB | 21 KB |
| splay | 24 KB | 9 KB | 18 KB |
# 其他示例
| 测试指标 | 原始大小 | uglifyjs 压缩后 | 代码加固功能 |
|---|---|---|---|
| crypto-js 4.0.0 | 190 KB | 64 KB | 98 KB |
| jQuery 3.6.0 | 282 KB | 133 KB | 211 KB |
| 空文件 | 0 KB | 0 KB | 1.4 KB |
# 二、初始化耗时
初始化耗时主要测试字节码加载、虚拟机初始化耗时,可以简单认为是从程序启动到执行第一句被保护代码的用时,影响冷启动时间。
| 测试指标 | 代码加固功能 |
|---|---|
| crypto | 13 ms |
| deltablue | 7 ms |
| earley-boyer | 18 ms |
| navier-stokes | 7 ms |
| raytrace | 11 ms |
| regexp | 16 ms |
| richards | 6 ms |
| splay | 6 ms |
# 三、执行速度
Node.js 12 可用于对比加固前后的变化,若分数越高则代表执行速度越快。
| 测试指标 | 代码加固功能 | Node.js 12 |
|---|---|---|
| crypto | 487 | 30880 |
| deltablue | 113 | 60804 |
| earley-boyer | 431 | 41661 |
| navier-stokes | 429 | 38936 |
| raytrace | 718 | 53938 |
| regexp | 579 | 6367 |
| richards | 214 | 26999 |
| splay | 1690 | 20672 |