# 检测所有函数调用

> Enable deep profiling to capture detailed function call information.

性能分析器仅对显式包含在[性能分析器标记](/engine/6000.0/manual/analysis/profiler/markers.md)中的代码时序进行性能分析。这包括从 Unity 的原生代码到脚本代码的调用（例如 `MonoBehaviour.Start`、`MonoBehaviour.Update` 或类似方法）的第一个调用栈深度。

只有回调 Unity API（且该 API 已被检测），或调用带有显式性能分析器标记的自定义代码时，这些样本才能作为脚本代码的子样本可视化。带有性能开销的大多数 API 调用都会经过检测。例如，通过 `Camera.main` API 访问主摄像机会被记录为一个 `FindMainCamera` 样本。

## 深度性能分析

如果您想获取有关所有函数调用的数据，从而了解代码对应用程序性能的影响，可以使用**深度性能分析 (Deep Profile)** 设置。启用深度性能分析设置后，性能分析器会对脚本代码的每个部分进行性能分析，并记录所有函数调用，至少包括进入任何 Unity API 中的第一个调用栈深度。

深度性能分析 (Deep Profiling) 是资源密集型操作，占用大量内存。因此，应用程序在性能分析时运行速度会明显变慢。深度性能分析功能最适合脚本逻辑简单的小型游戏。如果使用复杂的脚本代码，应用程序可能无法使用深度性能分析，对于许多较大规模的应用程序，深度性能分析可能会导致 Unity 内存不足。

### 启用深度性能分析

如果要从连接的应用程序收集性能数据，或者在 Unity 编辑器中收集数据，则可以启用深度性能分析。

要为构建的应用程序启用深度性能分析，请执行以下操作：

1. 打开**构建配置文件 (Build Profiles)** 窗口（**文件 (File)** > **构建配置文件 (Build Profiles)**）
2. 选择应用程序的目标平台
3. 启用**开发构建 (Development Build)** 设置。
4. 启用**深度性能分析**

要在编辑器中收集数据时启用深度性能分析：

1. 打开性能分析器窗口（**窗口 (Window)** > **分析 (Analysis)** > **性能分析器 (Profiler)）**。
2. 从[性能分析器工具栏](/engine/6000.0/manual/analysis/profiler/window-reference.md)中选择**深度性能分析 (Deep Profile)**。

然后，在启动性能分析会话时，性能分析器会检测所有函数调用。

## 其他资源

* [构建配置文件性能分析设置参考](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-applications/build-settings-reference.md)
* [性能分析器标记简介](/engine/6000.0/manual/analysis/profiler/markers.md)
* [收集性能数据简介](/engine/6000.0/manual/analysis/profiler/collect-data/profiling-collect-data-introduction.md)
