ActivityRecorder 
这个类封装的很奇怪,既可以表示 cpu 在某段事件内是否活动,又能表示各个阶段的活动情况。
cpu 
对于 cpu,在 activateStage 中:
cpp
void
ActivityRecorder::activity()
{
    // 如果已经激活过 直接返回
    if (activityBuffer[0]) {
        return;
    }
    // 没有激活过 进行激活
    activityBuffer[0] = true;
    // 增加活动数
    ++activityCount;
    DPRINTF(Activity, "Activity: %i\n", activityCount);
}而在 advance 中:
cpp
void
ActivityRecorder::advance()
{ 
    // 随着 advance,会将激活数减到0
    if (activityBuffer[-longestLatency]) {
        --activityCount;
        assert(activityCount >= 0);
        DPRINTF(Activity, "Activity: %i\n", activityCount);
        if (activityCount == 0) {
            DPRINTF(Activity, "No activity left!\n");
        }
    }
    activityBuffer.advance();
}在某段时间内激活数为 0 的时候直接代表不工作。
对于阶段而言 
阶段就是直接进行计数,没有使用 TimeBuffer,各个阶段是否激活的 bool 和 激活数来判断各个阶段是否激活。
使用 
两者可以独自用,也可以单独用。