Version: 1.4
语言 : 中文
Wasm 内联选项优化
托管代码精简

Wasm Analysis 工具

Wasm Analysis 是一款针对 WebAssembly (Wasm) 文件的分析工具,可以深入分析 Wasm 文件的构成与细节。通过这个工具,开发者可以详尽地查看 Wasm 文件中的各个模块和方法,以及它们包含的指令数量。帮助开发者精确定位需要剔除或精简的代码,从而减小 Wasm 大小。

开始使用 WebAssembly Analysis

您可以配置并勾选小游戏构建配置文件 Inspector 中的 “Generate Wasm Analysis Report(?)” 选项。之后在构建项目成功后会自动弹出 Wasm Analysis 窗口。

除此之外,您还可以从 Window -> Analysis -> Wasm Analysis 目录中手动打开此窗口。

WebAssembly Analysis 界面介绍

Wasm Analysis 工具的界面主要由 4 个部分组成。

  • 左侧 “Files” 板块列举了每次勾选 “Generate Wasm Analysis Report(?)” 并打包成功后的 Wasm 文件信息。
    • 点击后可以在右侧三个栏位中看到详细信息。
    • 该信息文件被保存在 “Library\AutoStreamingCache\WasmAnalysisReport” 目录下,您也可以通过右键点击菜单中的 “Show In Explorer” 来找到该信息文件。您可以手动删除或通过右击菜单中的 “Delete” 选项删除该信息文件。
  • 右侧 “Relevant Settings” 板块中记录着此次构建时有可能影响 Wasm 文件的部分设置。通过多次调整设置并构建,您可以对比观察这些设置如何影响 Wasm 文件。

  • 中上栏详细列举了 Wasm 文件中 托管代码(Managed) 以及 原生代码(Native) 中的各个模块、方法的指令数量,并按照从大到小的顺序排列。您可以从中观察哪些模块、类或方法最为庞大,根据需要着手优化。

  • 中下栏会列举出指令数最多的20个方法,您可以通过 “In All”, “In Managed”, “In Native” 这几个按钮来选择查找的范围。

  • 左下角的折叠栏允许您手动导入 Wasm 文件并生成分析报告,为此您需要提供如下文件:
    • 勾选是否为微信分包后的 Wasm。
    • Wasm 文件 (*.wasm) :项目构建时生成的 WASM 文件
    • 符号表文件 (*.symbols.json) :项目构建时生成 WASM 文件的符号表。该文件会根据 “Project Settings > Player > Publishing Settings > Debug Symbols” 的设置决定是否生成。
      • 若 “Debug Symbols” 为 “External”,则该文件会正常生成在构建目录中;
      • 若 “Debug Symbols” 为 “Embedded”,则符号表会内嵌在 wasm 文件中,当您导入 wasm 文件后会提示您无需额外提供该文件。
      • 若 “Debug Symbols” 为 “Off”,则无法进行分析。
    • MethodMap 文件 (MethodMap.tsv) :所在路径为 “Temp/EditorBuildOutput/MethodMap.tsv”,该文件会随项目的变化发生改变,因此请提供导入 wasm 文件生成时对应的 MethodMap 文件。若 MethodMap 和 wasm 不匹配可能会导致分析结果不准确。

注:Wasm Analysis 暂不支持解析包含 SIMD 指令的 wasm!

Wasm 内联选项优化
托管代码精简