Skip to content

Task-도메인 시뮬레이션 쿼리 버퍼 재사용 #234

@muzygosu

Description

@muzygosu

Summary

100명 단위 시나리오에서도 현실 시간이 크게 늘어나는 병목을 줄이기 위해 도메인 시뮬레이션 hot path에서 반복적인 엔티티 벡터 생성을 줄입니다. 기존 WorldQuery::view() 의미는 유지하고, 비할당 순회 API를 보조로 추가한 뒤 motion 시스템의 엔티티 목록 수집 경로에만 좁게 적용합니다.

Parent Issue

Area

Domain

Target Sprint

Later

Scope

  • 기존 WorldQuery::view() 동작은 유지
  • 엔진 계층에 비할당 순회 API를 보조로 추가
  • 도메인 motion 시스템에서 시뮬레이션 엔티티 목록 수집 버퍼 재사용
  • 알고리즘 순서와 결과 의미는 유지
  • 최소 테스트 또는 기존 빌드 검증으로 회귀 확인

Acceptance Criteria

  • motion 시스템이 매 step마다 불필요한 엔티티 벡터 재할당을 줄인다
  • 기존 �iew() 호출자는 기존 의미를 유지한다
  • 구조 변경 지연 처리와 phase 경계 semantics가 유지된다
  • safecrowd_domain 빌드가 통과한다

Architecture / Dependency Check

  • domain은 Qt/application에 의존하지 않는다
  • engine 변경은 범용 query API 추가에 한정한다
  • include 경로는 #include engine/..., #include domain/... 규칙을 유지한다
  • 시뮬레이션 로직은 application으로 올리지 않는다

Verification Plan

  • cmake --build --preset build-engine-domain-debug
  • 가능한 경우 cmake --build --preset build-no-app-debug --target safecrowd_tests
  • 사용자 성능 비교: 동일 시나리오에서 시뮬레이터 시간 28.9초 완료까지의 현실 시간 비교

Dependencies / Blockers

  • safecrowd_tests 전체 링크는 기존 ScenarioAuthoring.cpp CMake 포함 누락 이슈가 있어 별도 확인이 필요할 수 있습니다.

Repository Checks

  • I checked for an existing related issue or epic before creating this task.
  • I will keep the issue title aligned with the repository naming convention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions