コード例 #1
0
void FScriptExecutionTunnelEntry::AddTunnelTiming(const FName InstanceName, const FTracePath& TracePath, const FTracePath& InternalTracePath, const int32 ExitScriptOffset, const double Time)
{
	TSharedPtr<FScriptPerfData> PerfData = GetPerfDataByInstanceAndTracePath(InstanceName, TracePath);
	const float SampleCount = PerfData->GetRawSampleCount();
	PerfData->AddEventTiming(Time);
	PerfData->OverrideSampleCount(SampleCount);
	// Tick Entry points
	for (auto EntrySite : ChildNodes)
	{
		PerfData = EntrySite->GetPerfDataByInstanceAndTracePath(InstanceName, TracePath);
		PerfData->AddEventTiming(0.0);
		PerfData->OverrideSampleCount(SampleCount);
	}
	// Tick exit sites
	TSharedPtr<FScriptExecutionNode> TunnelExitNode = GetExitSite(ExitScriptOffset);
	if (TunnelExitNode.IsValid())
	{
		PerfData = TunnelExitNode->GetPerfDataByInstanceAndTracePath(InstanceName, TracePath);
		PerfData->AddEventTiming(0.0);
		PerfData->OverrideSampleCount(SampleCount);
		PerfData = TunnelExitNode->GetPerfDataByInstanceAndTracePath(InstanceName, InternalTracePath);
		PerfData->AddEventTiming(0.0);
	}
}