Unreal Engine中FPerformanceTesting类的具体实现
时间: 2024-03-05 19:49:46 浏览: 218
FPerformanceTesting是UE4中用于性能测试的类,其具体实现位于文件Engine\Source\Runtime\Core\Public\Misc\PerformanceTesting.h和Engine\Source\Runtime\Core\Private\Misc\PerformanceTesting.cpp中。
在PerformanceTesting.h文件中,FPerformanceTesting类定义了以下成员变量:
```c++
class FPerformanceTesting
{
public:
static void StartRecord();
static void StopRecord();
static void SetRecordName(const FString& InRecordName);
static void SetRecordFrameCount(int32 InFrameCount);
static void SetRecordTargetFPS(int32 InTargetFPS);
};
```
这些成员函数分别用于开始记录性能数据、停止记录性能数据、设置记录名称、设置记录的帧数和设置记录的目标帧率。
在PerformanceTesting.cpp文件中,FPerformanceTesting类的实现是通过在引擎循环中插入性能测试代码来获取性能数据。具体来说,它在引擎循环的开始和结束处分别插入了以下代码:
```c++
// 开始性能测试
if (FPlatformProperties::RequiresCookedData())
{
FPerformanceTesting::StartRecord();
}
// 引擎循环代码
// 结束性能测试
if (FPlatformProperties::RequiresCookedData())
{
FPerformanceTesting::StopRecord();
}
```
这段代码中,FPlatformProperties::RequiresCookedData()函数用于检查当前平台是否需要烘焙数据,如果需要,则开始记录性能数据,否则不进行记录。
在StartRecord()函数中,FPerformanceTesting类会创建一个FPerfAnalyze实例来记录性能数据。在StopRecord()函数中,FPerformanceTesting类会调用FPerfAnalyze实例的Stop()函数来停止记录性能数据,并将记录的性能数据保存到文件中。
在SetRecordName()、SetRecordFrameCount()和SetRecordTargetFPS()函数中,FPerformanceTesting类会设置性能测试的名称、帧数和目标帧率等参数,以便在记录性能数据时进行标识。
总的来说,FPerformanceTesting类通过在引擎循环中插入性能测试代码,来获取性能数据并保存到文件中,以便进行性能分析和优化。
阅读全文