학습 목표


1️⃣ 성능이 중요한 이유 — 프레임 예산과 체감 품질

void GameLoop() {
    while (running) {
        const float dt = timer.GetDeltaTime();
        ProcessInput(dt);      // 목표 ~1ms
        UpdateLogic(dt);       // 목표 ~10ms
        Render();              // 목표 ~5ms
        if (dt > 0.0167f) LogDrop(dt);
    }
}

체크리스트


2️⃣ 병목 4형제 — CPU·GPU·메모리·I/O

// AI를 프레임 분할 처리(스파이크 완화)
static size_t idx = 0;
const int kPerFrame = 12;
for (int i = 0; i < kPerFrame && !enemies.empty(); ++i) {
    enemies[(idx + i) % enemies.size()].TickAI();
}
idx = (idx + kPerFrame) % enemies.size();