CSV 中 Exclusive/GameThread/EventWait 的疑问

hi,

请问 CSV 中 Exclusive/GameThread/EventWait 是通过什么代码进行监控的,代表的意义是什么呢

你好,这三个字段代表的含义是CategoryName/ThreadName/StatName,Exclusive是CategoryName,EventWait是StatName,代表GameThread等待其他线程执行event所消耗的时间。

更具体的,对GT在不同阶段也有EventWait的分类,比如Exclusive/GameThread/EventWait/EndPhysics等

[Image Removed]如果想了解更具体的细节通过Insight去查看

[Image Removed]

理解了

请问这个等待其他线程执行event所消耗的时间,代码里面应该怎么写呢,我想多加一些csv stat来定位一下其它函数等待的时间

这里也确认一下 CSV_SCOPED_TIMING_STAT_EXCLUSIVE 的意义,应该是测量一段范围的耗时吧

比如下面的函数,做出以下结论看是否正确

  1. AA测量的是A函数的耗时,BB测量B函数耗时,CC测量C函数耗时
  2. 数值层面:AA ~= BB+CC

`void C()
{
CSV_SCOPED_TIMING_STAT_EXCLUSIVE(CC);
//somecode;
}

void B()
{
CSV_SCOPED_TIMING_STAT_EXCLUSIVE(BB);
//somecode;
}

void A()
{
CSV_SCOPED_TIMING_STAT_EXCLUSIVE(AA)
B();
C();
}`

是的,点进去这个宏就可以看到内部其实是个FScoped的结构体,在构造和析构的时候打开和关闭记录,​一般的使用方法是,在一个作用域的开始去声明一个宏去记录在这个作用域里面的函数的运行时间,比如某个tick,或者是在这个作用域里block并等待其他线程的Task结束,并记录这段时间