경험에 추가하는 모든 빌딩 및 스크립팅 구성 요소는 메모리를 소비합니다. 메모리 사용량이 엔진 한도에 도달하면 사용자의 장치 또는 서버가 충돌할 수 있으므로 사용량을 적극적으로 모니터링해야 합니다.
개발자 콘솔은 메모리 사용량 모니터링을 위한 두 가지 도구를 제공합니다:
메모리 — 사용자 지정 구성 요소 및 엔진 내부 프로세스를 포함하여 카테고리별로 실시간 메모리 소비를 확인합니다.
Luau 힙 — 스크립트의 메모리 할당을 의미하는 힙 메모리의 스냅샷을 생성합니다. 이 도구는 객체 유형 및 엔진 클래스와 같은 다양한 관점에서 현재 메모리 할당 및 문제를 식별하는 데 도움이 되는 여러 보기를 제공합니다. 또한 시간에 따라 메모리 사용량의 차이를 비교하기 위해 여러 개의 스냅샷을 생성할 수 있습니다.
테스트 또는 라이브 게임 세션 중에 다음 방법 중 하나를 사용하여 콘솔을 열 수 있습니다:
- F9 키를 누릅니다.
- 채팅에 /console을 입력합니다.
- 게임 내 메뉴를 사용합니다:
게임 내 Roblox 메뉴를 엽니다.

설정 탭을 선택합니다.
개발자 콘솔로 스크롤 다운하고 열기를 클릭합니다.
메모리
메모리 도구는 실시간 메모리 사용량을 분류하고 표시합니다. 각 카테고리의 메모리 사용량을 MB 단위로 표시하고 시간에 따른 사용 변화에 대한 차트를 생성합니다.
메모리 할당을 보려면:
개발자 콘솔을 엽니다.
도구 드롭다운을 확장하여 메모리를 선택합니다.

클라이언트-서버 드롭다운을 확장하여 클라이언트 또는 서버를 선택합니다.
메모리 사용량 카테고리 및 항목을 탐색합니다. 시간에 따른 사용량을 보려면 카테고리를 확장하여 차트를 표시합니다.
CoreMemory — 네트워킹, 아바타 및 직접 제어할 수 없는 GUI 요소를 포함하여 엔진의 핵심 빌딩 프로세스에 의한 메모리 사용량.
PlaceMemory — 모델, 지형, 부품, 스크립트 및 경험에 추가하는 모든 사용자 지정 요소를 포함하여 경험을 빌드하는 방법에 따라 메모리 사용량.
PlaceMemory 참조카테고리 설명 HttpCache Roblox 서버에서 로드되고 현재 메모리에 캐시된 자산(이미지, 메시 등). Instances 장소에 있는 Instances. Signals 인스턴스 간에 발생하는 신호(한 인스턴스에서 이벤트가 발생하여 다른 인스턴스에서 이벤트를 트리거함). LuaHeap 핵심 스크립트(로블록스 클라이언트와 함께 제공되는 스크립트) 및 사용자 지정 스크립트에 대한 힙 메모리. Script Luau 스크립트. PhysicsCollision 물리 시뮬레이션용 충돌 데이터. PhysicsParts 물리 기하학 및 운동학. GraphicsSolidModels 솔리드 모델을 렌더링하기 위한 그래픽 데이터. GraphicsMeshParts MeshPart 객체에 대한 그래픽. GraphicsParticles 입자 시스템에 대한 그래픽. GraphicsParts 부품에 대한 그래픽. GraphicsSpatialHash 일반 렌더링. GraphicsTerrain 지형에 대한 그래픽. GraphicsTexture 텍스처 메모리. GraphicsTextureCharacter 캐릭터에 대한 텍스처 메모리. Sounds 메모리에 저장된 사운드. StreamingSounds 스트리밍 사운드. TerrainVoxels 지형 복셀. TerrainPhysics 지형 물리. Gui 일반 GUI 요소가 사용하는 메모리. Animation 포즈 및 KeyframeSequence 캐시된 데이터와 같은 애니메이션 데이터에 사용되는 메모리. Navigation PathfindingService를 위한 지원 구조에서 사용되는 메모리. UntrackedMemory — 시스템이 특정 소스에 쉽게 귀속할 수 없는 메모리 할당.
PlaceScriptMemory — 개별 스크립트 및 사용자 지정 메모리 태그가 전체 메모리 사용량에 어떻게 기여하는지에 대한 통찰력이 포함된 스크립트의 메모리 사용량.
CoreScriptMemory — 직접 제어할 수 없는 내부 엔진 스크립트에 의한 메모리 사용량.
이러한 카테고리 중에서 PlaceMemory와 PlaceScriptMemory는 성능 최적화를 위해 가장 중요한 카테고리로, 이는 당신의 빌딩 및 스크립팅 선택이 메모리 소비에 미치는 영향을 이해하고 최적화할 수 있는 잠재적 영역을 식별하는 데 도움을 줍니다. PlaceScriptMemory에 대한 더 많은 통찰력을 원한다면 Luau 힙 도구를 사용하여 스냅샷을 생성하고 다양한 메트릭에 따라 메모리 할당을 분석하세요.
Luau 힙
Luau 힙 도구를 사용하면 현재 힙 메모리 할당의 스냅샷을 생성할 수 있습니다. 이는 Luau 스크립트가 변수, 테이블, 함수 및 기타 런타임 데이터 구조를 저장하는 데 사용하는 메모리를 의미합니다. 이 도구는 다양한 관점에서 문제를 식별하는 데 도움이 되는 여러 보기를 제공합니다. 이 또한, 시간에 따른 메모리 사용량의 차이를 비교하기 위해 여러 개의 스냅샷을 생성할 수 있습니다.
스냅샷 생성
메모리 할당의 스냅샷을 생성하려면:
개발자 콘솔을 엽니다.
도구 드롭다운을 확장하여 LuauHeap를 선택합니다.

클라이언트-서버 드롭다운을 확장하여 클라이언트 또는 서버를 선택합니다.
스냅샷 생성 버튼을 클릭합니다.
메모리 사용 분석
이 도구는 Luau 메모리 사용량에 대한 다양한 보기를 제공합니다:
- 그래프 — 각 노드가 메모리가 할당된 객체를 나타내는 집계된 메모리 사용량 트리를 보여줍니다.
- 객체 태그 — function, table, thread와 같은 런타임 유형별로 메모리 크기와 개수를 표시합니다.
- 메모리 카테고리 — 엔진이 할당 시 객체에 할당한 메모리 카테고리별로 메모리 크기와 개수를 표시합니다.
- 객체 클래스 — 스크립트가 사용하고 그 인스턴스를 저장하는 엔진 클래스별로 메모리 크기와 개수를 표시합니다. 이 뷰는 엔진 자체의 메모리 사용량이 아니라 Luau VM의 메모리 사용량만 보여줍니다.
- 고유 참조 및 부모 없는 인스턴스 — 데이터 모델에서 부모가 없고 스크립트를 통해서만 도달할 수 있는 고유 참조 또는 모든 나머지 참조의 개수와 총 인스턴스 수를 보여줍니다. 인스턴스 객체를 고정하는 모든 경로도 표시합니다.
그래프
그래프 뷰는 모든 Luau 힙 보내기 중에서 가장 상세하고 복잡한 뷰입니다. 메모리가 할당된 객체를 나타내는 각 노드가 있는 집계된 메모리 사용량 트리를 보여줍니다. 이 트리는 객체가 서로 어떻게 연결되는지 표시하고 객체 참조 간의 최단 경로를 유도합니다. 다음과 같은 메모리 크기 열이 있습니다:
- 크기 — 자기 메모리 사용량 및 데이터 구조 내의 내용에 의해 할당된 메모리 사용량.
- 본인 — 데이터 구조 자체에 대해 직접 할당된 메모리, 포함된 내용에 의해 할당된 메모리 제외.

트리 그래프의 루트는 registry로, 이는 모든 엔진 및 Luau 참조(신호에 연결된 함수, 모듈 스크립트에서 반환된 테이블, 전역 함수, 테이블 및 클래스)를 저장합니다. 일반적으로 다음과 같은 일반 항목을 부모로 가집니다:
- Module @Path.To.Module는 모듈 스크립트에서 반환된 테이블입니다.
- name:123 =Path.To.Module는 지정된 스크립트 내의 함수입니다. 익명 함수는 이름이 없습니다. 최상위 노드는 종종 전역 스크립트 함수와 관련이 있습니다. 예: :1= Workspace.[사용자 이름].애니메이트.
- upvalue는 캡처된 함수에 대한 참조입니다. 캡처 지역 범위에 대한 추가 정보를 참조하세요.
- env는 함수의 환경을 나타냅니다. 대부분의 경우, 이는 스크립트의 전역 범위를 나타내는 테이블입니다.
- globals는 스레드의 환경을 나타냅니다.
- [key]는 테이블 키로 작동하는 객체를 나타냅니다.
- array는 배열을 나타냅니다.
- stack은 모든 함수 로컬을 저장하는 배열을 나타냅니다.
- constants는 함수에서 사용하는 모든 상수 값을 나타냅니다.
메모리 카테고리
메모리 카테고리 뷰는 메모리 카테고리별로 메모리 크기와 개수를 표시합니다. 엔진은 메모리 할당 시 객체에 메모리 카테고리를 할당합니다. 기본적으로 메모리 카테고리는 스크립트와 동일한 이름을 가집니다. 또는 debug.setmemorycategory 함수를 사용하여 사용자 지정 메모리 카테고리 이름을 지정할 수 있습니다.
고유 참조 및 부모 없는 인스턴스
고유 참조 및 부모 없는 인스턴스 뷰는 관련이 있습니다. 두 뷰 모두 데이터 모델에서 부모가 없고 스크립트를 통해서만 도달할 수 있는 인스턴스의 메모리 사용량 및 인스턴스 객체를 고정하는 모든 경로를 보여줍니다. 인스턴스가 Luau 스크립트 내에서만 참조되는 경우, 고유 참조 아래에 표시됩니다. 그렇지 않으면, Roblox 시스템에서도 사용되고 있으며 부모 없는 인스턴스 아래에 표시됩니다. 두 뷰 모두 두 가지 메트릭을 보여줍니다:
- 개수 — 동일한 경로에서 도달할 수 있는 동일한 이름을 가진 인스턴스의 개수(예: 같은 테이블에 있는 여러 개의 Dragon 인스턴스).
- 총 인스턴스 — 해당 루트 내부의 총 객체 수(예: Dragon 인스턴스를 구성하는 모든 부품, 스크립트 및 사운드 객체).

이 뷰는 더 이상 필요하지 않은 연결된 인스턴스를 식별하는 데 유용하며, 더 이상 필요하지 않은 경우 이를 분리해야 합니다. 이 뷰에서 많은 예기치 않은 인스턴스가 표시되면 이를 보유하고 있는 경로를 확인하고 필요한지 평가하세요.