File Access Profiler 模块会显示应用程序中与文件活动相关的信息,例如 Unity 执行的读取或写入操作次数,或打开的文件句柄数量。该模块既可以针对特定帧,也可以针对捕获的所有帧显示这些信息。借助这些信息,您能够评估应用程序执行文件操作的效率。
文件访问模块可以捕获已构建应用程序文件夹结构内任意文件的操作信息,若在 Unity 编辑器中运行性能分析器,该模块还能捕获 Unity 项目文件夹内任意文件的操作信息。该模块不会收集关于失败的文件操作的信息。如果文件操作尝试不成功,Unity 会显示一条错误提示。
默认情况下未启用此模块。要启用文件访问性能分析器模块,请参阅激活性能分析器模块。
Profiler 窗口的上半部分显示具有以下类别的文件访问图表:
| 图表 | 描述 |
|---|---|
| Files Opened | 此帧在本地文件系统中成功打开的文件总数。 |
| Files Closed | 此帧在本地文件系统中成功关闭的文件总数。 |
| File Seeks | 此帧在本地文件系统中执行的文件查找操作的数量。文件查找操作涉及对文件内容的搜索。 |
| Reads in Flight | 在此帧期间正在进行的读取操作的总数。 |
| File Handles open | 在此帧内随时打开的文件句柄总数。这包括 Unity 在同一帧中打开和关闭的文件。 |
在文件访问性能分析器模块中选择某一帧时,该模块的详细信息面板会显示在捕获期间 Unity 访问过的文件的详细信息。使用工具栏访问以下功能:
| 属性 | 描述 | |
|---|---|---|
| View dropdown | 使用下拉选单更改数据的视图: | |
| File Summary | 显示在所选帧期间 Unity 访问的每个文件的所有文件活动摘要。 | |
| Accesses | 按发生顺序显示数据集中的每个文件访问操作。 | |
| Frame dropdown | 使用该下拉选单可选择要显示文件信息的帧数: | |
| This Frame | 显示所选帧的文件活动摘要。 | |
| All Frames | 显示性能分析器捕获中所有帧的文件活动摘要。 | |
| Analyze Markers | 此模块不会自动填充详细信息面板。选择分析标记 (Analysis Markers) 按钮可使用数据填充详细信息面板。 | |
文件摘要 (File Summary) 视图显示捕获期间每个文件发生的所有文件访问操作的摘要。表中的一个条目表示单个文件的完整摘要。
下表描述了文件摘要视图表可以显示的所有可能统计信息。默认情况下,并非所有统计信息列都处于启用状态。要启用或禁用列,右键单击包含列标题的行中的任意位置以打开菜单使用此菜单可启用或禁用每列的视图。
| 值 | 描述 |
|---|---|
| Filename | 访问的文件的名称。 |
| Total Bytes Read | Unity 在所选帧期间从此文件读取的信息的总字节数。 |
| Read Access Time (ms) | Unity 在所选帧期间从该文件执行读取所花费的总时间。 |
| Access Count | 在所选帧内对该文件进行的任何类型的访问的总次数。 |
| First Frame | Unity 第一次对这个文件进行访问操作的那个帧。 |
| Number of Frames | Unity 访问此文件的总帧数。 |
| ID | 一个代表文件访问标记执行顺序的索引。 |
| Read Bandwidth (MBps) | 在所选帧内对该文件执行读取操作的平均带宽,单位为兆字节每秒。 |
| Open Count | 在所选帧内对此文件的打开操作总数。 |
| Close Count | 在所选帧内对此文件的关闭操作总数。 |
| Read Count | 在所选帧内对此文件的读取操作总数。 |
| Write Count | 在所选帧内对此文件的写入操作总数。 |
| Seek Count | 在所选帧内对此文件执行的文件查找操作的总数。 |
| Total Bytes Written | Unity 在所选帧内写入此文件的字节总数。 |
| Write Bandwidth (MBps) | 在所选帧内对该文件执行写入操作的平均带宽,单位为兆字节每秒。 |
| Open Access Time (ms) | Unity 在所选帧内对此文件执行打开操作所花费的总时间,单位为毫秒。 |
| Close Access Time (ms) | Unity 在所选帧内对此文件执行关闭操作所花费的总时间,单位为毫秒。 |
| Write Access Time (ms) | Unity 在所选帧内对此文件执行写入操作所花费的总时间,单位为毫秒。 |
| Total Access Time (ms) | Unity 在所选帧内访问此文件所花费的总时间,单位为毫秒。 |
访问 (Accesses) 视图提供有关捕获中的每个文件访问操作的详细信息。性能分析器详细信息面板中表格的每一项,代表对单个文件的一次文件访问操作。下表描述了访问视图可以显示的所有可能列。
| 值 | 描述 |
|---|---|
| Index | 一个 ID 号,表示 Unity 执行访问操作的顺序。 |
| Filename | 此操作期间访问的文件的名称。要完整查看文件路径,请将光标悬停在文件名条目上。 |
| Type | 执行的访问操作的类型。这可以是打开 (Open)、关闭 (Close)、查找 (Seek)、读取 (Read) 或写入 (Write)。 |
| Access Size | 当访问操作为读取或写入时,访问期间传输的字节数。当访问操作为文件查找时,大小是目标偏移量。 |
| Offset | 文件访问的(起始)偏移。 |
| Duration (ms) | 执行此访问所用的时间,单位为毫秒。 |
| Average Bandwidth (MBps) | 此访问的平均带宽,其中访问类型为读取。 |
| First Frame Index | 此访问开始的帧的 ID。 |
| Frames | 发生此访问的帧总数。 |
| Thread | 发生访问的线程。 |
| Timestamp (ms) | 此访问开始的时间,相对于性能分析器捕获的开始时间。 |
右键单击任何文件访问标记,可打开一个子菜单,其中包含用于深入分析数据的附加选项,可用选项如下:
| 值 | 描述 |
|---|---|
| Show marker in timeline view | 在 CPU 使用率性能分析器 (CPU Usage Profiler) 模块中打开此标记。 |
| Go to the first frame of this marker | 选择该标记在图表中首次出现的帧。如果标记仅出现在一帧上,此选项将被禁用。 |
| Go to the last frame of this marker | 选择该标记在图表中最后出现的帧。如果标记仅出现在一帧上,此选项将被禁用。 |
| Filter the view to this file path | 使用文件名 (Filename) 列的内容填充搜索栏以过滤结果。 |