UDN
Search public documentation:

TextureStreamingKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 머티리얼과 텍스처 > 텍스처 스트리밍
UE3 홈 > 렌더링 > 텍스처 스트리밍

텍스처 스트리밍


문서 변경내역: Niklas Smedberg 작성. 홍성진 번역.

개요


텍스처 스트리밍 시스템은 멀티-스레드에 우선권-기반입니다. (콘솔에서) 텍스처 풀을 사용할 때는, 우선권이 더 높은 텍스처가 메모리를 필요로 하기 전까지는 텍스처를 스트리밍 아웃하지 않습니다. 그래야 텍스처 퀄리티를 보다 안정적으로 유지하고 불필요한 디스크 액세스를 막는 것입니다.

텍스처의 우선권은 주로 거리에 따라 결정되지만, 시간이라든가 원하는 해상도라든가 (플랙을 통해 풀 스트림 인 되도록) 강제 여부같은 요인도 고려합니다.

시스템은 주기적으로 각 스트리밍 텍스처에 대한 두 값을 계산합니다: 원하는 밉레벨 수와 우선권 입니다. 그런 다음 그 우선권에 따라 모든 텍스처를 소트한 다음, 우선권이 가장 높은 텍스처부터 시작해서 모든 텍스처가 원하는 밉레벨 수는 최소한 메모리에 있도록 시도해 봅니다. 텍스처가 밉레벨을 추가로 스트림 인 해야 하는데 메모리가 충분치 않은 경우, 우선권이 낮은 밉레벨부터 스트림 아웃 시키기 시작한 다음 다시 시도해 봅니다.

스트리밍 타입


스트리밍 시스템은 텍스처가 메모리에 밉레벨을 몇이나 두려 하는지를 결정할 때 여러가지 종류의 휴리스틱(발견법)을 사용합니다. 보통 텍스처는 딱 한 가지 휴리스틱을 사용하지만 가끔 스태틱 메시와 스켈레탈 메시에도 같은 텍스처가 사용되었다든가 하는 경우에는 복수의 휴리스틱을 사용할 수도 있습니다. 그런 경우, 사용된 휴리스틱 중 최고 (원하는 밉레벨 수가 가장 높은) 결과를 선택합니다.

원하는 밉레벨 수는 특정 유효 범위로 제한(clamp)됩니다. 이 범위는 여러가지 요인에 따라 결정되는데, 텍스처 그룹 LOD 세팅, 시네마틱 밉레벨, 엑스박스 상의 패킹된 밉-테일, 글로벌 최소 최대 세팅 (GMinTextureResidentMipCount 와 GMaxTextureMipCount), 텍스처를 풀 로드 강제 여부 등입니다.

몇 종류의 텍스처는 일반적인 휴리스틱으로는 처리되지 않는데, 스트리밍 시스템이 능동적으로 추적할 수 없기 때문입니다. 특히나 이펙트 텍스처가 그렇습니다. 이 텍스처는 지난 90 초 안에 렌더된 적이 있는가에 따라서, 기본적으로 모 아니면 도 식의 결과가 나는 예비 휴리스틱으로 처리됩니다. 스트리밍 시스템은 이런 텍스처를 추적하지 않기 때문에, 그 텍스처가 다른 지오메트리에 의해서도 사용되면 문제가 생길 수 있습니다. 스트리밍 시스템이 바로 그 다른 지오메트리를 알고 있어야지만 그 휴리스틱에 따라 그 텍스처를 스트리밍 하는 것입니다. 그 지오메트리가 멀리 있으면 원하는 밉레벨 수는 낮을 것입니다. 같은 텍스처를 사용하는 이펙트가 카메라 가까이에 있다 해도 말입니다. 이런 경우에는 텍스처를 공유하지 않는 것이 좋겠지요.

Static 스트림 타입


이 스트림 타입은 언리얼 에디터 내에 놓은 모든 스태틱 오브젝트에 사용됩니다. 본질적으로는 거리-기반, 즉 화면상에서 텍스처가 몇 픽실이나 차지하는지 추정치를 계산한 다음 그 해상도에 맞추는 데 필요한 밉레벨을 끌어 내는 것입니다.

Dynamic 스트림 타입


스켈레탈 메시나 스폰된 오브젝트같은 다이내믹 오브젝트 위의 텍스처는 다이내믹 휴리스틱을 사용합니다. 스태틱 스트림 타입과 매우 비슷하지만, 스트리밍 시스템이 어태치/디태치, 위치와 바운딩 박스 변경사항을 추적 기록한 다음 그에 따라 계산을 업데이트합니다.

Forced 스트림 타입


bForceMipStreaming (밉 스트리밍 강제) 옵션이 설정되었거나, 키즈멧 액션 또는 게임 코드로 강제된 오브젝트 위의 텍스처는, 그 WantedMips (원하는 밉)을 최대 값으로 설정합니다. 보통 이상의 우선권을 갖게 되며, 가능한 한 모든 밉레벨이 스트림 인 됩니다. 정상적으로 강제 텍스처는 타이머를 사용하여 시간이 다 될 때마다 보통의 스트리밍 방식으로 자동 되돌아갑니다. 이 타이머는 강제 옵션을 끄는 것을 깜빡했을 경우에 대한 대비책이자 편의를 위해 제공됩니다. 의도한 기간만큼 충분히 돌아가도록 타이머 시간을 크게 잡도록 하기는 해야 겠지만, 더이상 필요 없음이 확실해 지면 수동으로 꺼 주는 것이 좋습니다. 이러한 강제 텍스처는 텍스처 메모리를 많이 잡아먹기에 다른 텍스처를 스트림 아웃 시켜버릴 수가 있으니, 더이상 필요치 않겠다 싶으면 바로 Forced 옵션을 꺼 주는 것이 매우 중요합니다. STAT STREAMINGDETAILS (스탯 스트리밍_디테일) 또는 LISTSTREAMINGTEXTURES (리스트_스트리밍_텍스처)로 강제 텍스처 사용량을 모니터링할 수 있습니다.

LastRenderTime 스트림 타입


텍스처가 스트리밍 시스템에 추적당하지도 않고 보통의 휴리스틱으로 처리되지도 않으면, LastRenderTime (지난 렌더 시간) 휴리스틱으로 예비 처리됩니다. 텍스처가 렌더될 때 모든 밉레벨을 스트림 인 시켰다가 (텍스처가 카메라 뒤에 있다든가, 다른 지오메트리에 가렸다든가, 더이상 씬의 일부가 아니라든가 해서) 렌더되지 않게 된 이후 90 초 동안 메모리에 남겨 두는, 초간단 휴리스틱입니다.

이 스트림 타입은 보통 파티클 이펙트 텍스처에 의해서만 사용되며, 조심해서 사용해야 합니다. STAT STREAMINGDETAILS (스탯 스트리밍_디테일)과 LISTSTREAMINGTEXTURES (리스트_스트리밍_텍스처)로 메모리 사용량을 모니터링하십시오.

Orphaned 스트림 타입


스트리밍 시스템이 (레벨 전환중이라든가 다이내믹 오브젝트가 방금 스폰 해제(desapwn)되었다든가 해서) 최근에 텍스처를 놓쳤으나 여전히 존재는 하는 경우, LastRenderTime 스트림 타입으로 즉시 떨어지지 않고 잠시동안 Orphaned (고아)가 됩니다. 그 동안에 현재 (어느 것이든 더 낮은 것으로 최대보다 하나 덜) 갖고 있는 밉을 유지합니다. 이를 통해 전환의 경우 텍스처의 모든 밉레벨이 임시로 스트림 인 되지 않도록 합니다. LastRenderTime 이었다면 텍스처가 최근에 렌더되었을 경우 모든 밉을 스트림 인 시킬테죠. 텍스처가 다시 추적되거나 메모리에서 삭제될 때까지는 현 상태로 얼려버린다는 개념입니다.

데칼 (Decal)


레벨에 놓인 스태틱 데칼은 스태틱 스트림 타입을 사용합니다. 실행 시간에 스폰된 다이내믹 데칼은 LastRenderTime 을 사용합니다. 한 데칼 텍스처가 스태틱/다이내믹 오브젝트 둘 다에 사용되는 경우에는, 텍스처 공유에 따른 파티클 이펙트 관련 문제를 피하기 위해 LastRenderTime 이 선행되도록 특별히 신경써 줍니다.

미리-스트리밍 텍스처


텍스처가 필요해 지기 전 미리 스트림 인 시작하는 방법은 여러가지 있습니다. 레벨이 풀스크린 로딩 무비와 함께 로드되어 무비가 정지되었을 때, 스트리밍 시스템은 자동으로 CPU 를 블록하고, 그 시점의 (카메라/플레이어 위치, 로드되어 보이는 지오메트리 등) 세팅에 따라 원하는 텍스처를 모두 스트림 인 시킵니다. 그 작업이 얼마나 걸렸고, 그 기간동안 텍스처가 몇이나 스트림 인 되었나 하는 것이 로그에 한 줄 추가됩니다. 이 블록 작업에 대한 시간 제한을 설정하는 .ini 세팅(TextureStreaming -> LoadMapTimeLimit)이 있습니다. 필요하다면 언제고 수동으로 (GStreamingManager->StreamAllResources) 호출할 수도 있습니다. .

게임 코드에서 PrestreamTextures() 함수 중 하나를 호출하는 식으로, 특정 텍스처나 메시를 메모리 속에 강제로 넣어 미리 스트림 인 시킬 수 있습니다. 지정된 기간 동안, 아직 그 텍스처를 사용하는 것이 아무것도 없는데도 밉레벨 전부를 로드하는 것입니다. 일단 사용되기 시작하면, 다시 정상적인 방식으로 스트리밍 시스템에 처리를 맡길 수 있습니다.

우리가 곧 새 위치로 텔레포트하기 직전이라는 것을 게임 코드가 안다면, GStreamingManager->AddViewSlaveLocation() 를 호출하여 스트리밍 시스템에 이차적인 뷰 위치를 추가하는 것도 가능합니다. 스트리밍 시스템은 이 위치와 보통의 카메라 뷰 위치 둘 다를 다루어, 모든 위치에 따라 텍스처를 스트리밍 시킵니다.

게임플레이나 키즈멧을 통해 레벨이 스트림 인/아웃 되는 도중에는, Stream-In-Textures 키즈멧 액션 노드를 사용해서 미리-스트리밍을 조심스레 다뤄 줘야 합니다. 이 노드는 PrestreamTextures() 와 AddViewSlaveLocation() 함수와 똑같이 사용하면 됩니다. 스트리밍 시스템한테 인식시켜 주려면 Loaded and Visible 레벨이어야 한다는 점, 유념하시구요.

Stream-In-Textures 키즈멧 노드 역시 "All Loaded" 출력이 있습니다. 원하는 텍스처 전부가 로드되었든, 지정된 기간이 지났든 했을 때 트리거되는 출력이지요. 필요에 따라 로딩 화면을 띄우는 데도 사용할 수 있습니다. 참고로 텍스처 예산을 넘어서 버리면 원하는 텍스처 전부가 메모리에 맞지 않아 로드되지 않을 수 있으니, 적당한 시간 제한을 두었는지 확인하시기 바랍니다. (이 방식은 이러한 특별 상황을 피하기 위해, 로드 가능한 모든 텍스처가 모두 로드되었을 때 대신 트리거되도록 추후 바뀔 수도 있습니다.)

증폭 (Boosting)


특정 뷰 위치나 액터는 증폭 가능합니다. 증폭 인수 1.0 은 정상 동작을, 더 큰/작은 값은 좀 더/덜 적극적임을 뜻합니다. 더 적극적이라 함은 관련된 텍스처의 원하는 밉레벨 수를, 마치 카메라에 가까이 있는 것처럼 증폭시킨다는 것입니다.

증폭 인수는 1.0 으로 자동 리셋되므로 매 프레임마다 설정해 줘야 증폭 인수가 유지됩니다.

이 기능은 특정 중요 캐릭터를 증폭시키거나, 곧 줌 인 가능한 (또는 이미 줌 인 된) 뷰에 대한 텍스처를 좀 더 적극적으로 미리-스트리밍 시키는 데 사용할 수 있습니다.

텍셀 팩터


TexelFactor 는 원하는 밉레벨 수에 직접적으로 영향을 끼칩니다. 값이 클 수록 스트림 인 되는 밉레벨도 많아집니다. 메시에 있는 모든 트라이앵글을 들여다보고 UV 맵과 트라이앵글 크기 비율을 비교해 보는 쿠킹 도중 자동으로 미리 계산됩니다. 그러나 컴포넌트에 있는 StreamingDistanceMultiplier 프로퍼티를 설정하여 수동으로 조절해 줄 수도 있습니다. 이 값 역시도 클 수록 스트림 인 되는 밉레벨이 많아집니다. StreamingDistanceMultiplier 값이 2.0 이면 TexelFactor 는 두 배가 됩니다. StreamingDistanceMultiplier 값이 0.5 이면 TexelFactor 는 절반이 됩니다. InvestigateTexture 또는 ListStreamingTextures 콘솔 명령을 사용하면 런타임에 TexelFactor 의 효과를 볼 수 있습니다.

시네마틱 밉레벨


텍스처에는 보통의 게임플레이에서는 쓰이지 않는 시네마틱 전용 초고해상도 밉레벨이 있을 수 있습니다. 시네마틱 밉레벨의 수는 텍스처 프로퍼티에 설정됩니다. 이 시네마틱 밉레벨을 켜려면, Stream-In-Textures 키즈멧 액션을 사용해서 텍스처 그룹에 대해 그 기능을 켜 주고, 텍스처를 강제 스트리밍 시켜야 합니다. C++ 에서 UTexture2D::SetForceMipLevelsToBeResident() 를 호출하여 켜는 수도 있습니다.

특별 텍스처 그룹


특별 취급되는 텍스처 그룹이 있습니다. TEXTUREGROUP_Skybox 텍스처는 항상 풀 스트림 인 되며, 자동으로 Forced 마킹됩니다. TEXTUREGROUP_UI 텍스처는 그 밉레벨 전부를 쿠킹 도중 제거하여 절대 스트리밍되지 않도록 합니다. TEXTUREGROUP_Lightmap 과 TEXTUREGROUP_Shadowmap 은 .ini 세팅에서 추가 증폭 인수("LightmapStreamingFactor" 와 "ShadowmapStreamingFactor")를 사용합니다. 세 TEXTUREGROUP_Character 그룹 중 하나를 사용하는 텍스처는, 맵을 로드할 때는 처음 스트림 인 되고 패닉(긴급) 스트림 아웃 될 때는 마지막으로 스트림 아웃 될 수 있다는 점에서, 약간의 이점이 있습니다.

패닉 스트림 아웃


텍스처가 (보통 최소한의 밉레벨만 가지고) 처음 동기화되어 만들어질 때는, 메모리에 맞거나 게임이 아웃 오브 텍스처 메모리(OOTM) 되고나 할 것입니다. 메모리가 충분치 않다면, 공간 확보를 위해 스트리밍 시스템이 텍스처 데이터를 스트림 아웃 시도할 수 있습니다. 여기서 착하게 굴 시간이 없기에, 텍스처 풀에 잡히는 대로 아무거나 스트림 아웃 시켜 공간을 만듭니다. 이 작업은 시간이 조금 걸릴 수 있는데, 텍스처를 많이 스캔하고 연속된 공간을 만들기 위해 텍스처 풀 메모리 조각모음을 해야 할 수도 있기 때문입니다. 이런 작업이 있을 때마다 로그에 한 줄 추가됩니다.

텍스처 스트리밍 최적화와 디버깅


먼저 살펴볼 것은 STAT STREAMING 의 "Over Budget" 값입니다. 0 이면 괜찮습니다. 0 이 아니라면 텍스처 풀 크기보다 텍스처를 많이 사용중이니, 메모리 사용량을 줄이고/거나 텍스처 풀 크기를 늘려야 합니다. 가끔은 "Over Budget" 값이 0 이 아니어도 괜찮을 때가 있는데, 스트리밍 시스템은 우선권 기반이고, 어찌됐든 비주얼 퀄리티는 괜찮을 수 있기 때문입니다.

메모리 사용량을 줄일 후보를 찾으려면, "ListStreamingTextures" 과 "ListTextures" 콘솔 명령을 사용하면 됩니다. 참고로 텍스처 풀 메모리는 (사용량이 시간에 따라 달라지는) 스트리밍 텍스처와 (사용량이 좀 더 고정적인) 논-스트리밍 텍스처 양쪽에 사용됩니다. ListStreamingTextures 명령은 스트리밍 텍스처와 스트리밍 시스템에서의 정보를 나열합니다. ListTextures 는 모든 텍스처와 조금은 일반적인 정보를 나열합니다.

ListStreamingTextures 를 확인하여 불필요하게 크거나 Forced, LastRenderTime 마킹된 텍스처를 찾아봅니다. 공유 텍스처를 늘려 꼭 필요치 않은 고유 텍스처를 제거할 수 있는지도 알아봅니다. 불필요하게 큰 텍스처는 LODBias 나 StreamingDistanceMultiplier 프로퍼티를 수정하여 조절할 수도 있습니다. 메모리를 많이 잡아먹는 시네마틱 밉레벨이 (Forced 로 마킹되는 텍스처이니) 불필요하게 사용되지는 않았나도 확인해 보십시오.

스트리밍되지 않는 텍스처는 ListTextures 를 통해 메모리를 많이 쓰지는 않나, 최적화가 필요한가 확인해 보십시오.

특정 텍스처를 조사해 보려면 "TrackTexture <이름>" and "InvestigateTexture <이름>" 콘솔 명령을 사용하십시오. 예기치않게 스트림 아웃 되거나 변화 감지를 못하고 있지는 않나 확인해 봅니다. 올바른 스트림 타입을 사용중인지 확인합니다. (텍스처가 사용되는 곳의) 모든 텍스처 인스턴스가 처리되는지 확인합니다. 추적되지 않는 (파티클 이펙트같은) 텍스처가 일정하게 추적되는 (스태틱 메시같은) 인스턴스에 공유되지는 않는지 확인합니다.

새 맵을 로드할 때 텍스처가 뿌얘 보인다면, 로딩 화면이 꺼진 상태에서 (풀스크린 로딩 무비를 사용하는지 확인) FStreamingManagerCollection::StreamAllResources() 가 호출될 때 View Location 이 올바른 지점에 있는지 확인해 보십시오. 그 시점에서 모든 데이터가 풀 로드되었는지 확인합니다.

몇몇 .ini 세팅


.ini 세팅은 모두 TextureStreaming 섹션에 들어있습니다.

PoolSize 텍스처 풀 크기로, MB 단위입니다 (기어즈 오브 워는 145 MB 를 사용합니다).
MemoryMargin 새 데이터를 스트림 인 할 때 임시 메모리로 활용할 여분 메모리 유지량으로, MB 단위입니다 (기어즈 오브 워는 10 MB 를 사용합니다.)
MemoryLoss 나중에 사용하기 위해 여분으로 남겨둘 메모리 양입니다. 출하할 때는 0 이어야 합니다.
LoadMapTimeLimit 로딩 화면 막바지에 모든 텍스처를 스트림 인 시킬 때 최대 몇 초간 블록할 것인가 입니다.
LightmapStreamingFactor TEXTUREGROUP_Lightmap 텍스처에 대한 추가 증폭 인수입니다.
ShadowmapStreamingFactor TEXTUREGROUP_Shadowmap 텍스처에 대한 추가 증폭 인수입니다.
BoostPlayerTextures 모든 플레이어 캐릭터 텍스처에 자동으로 적용되는 증폭 인수입니다.

Stat Streaming


Game Thread Update Time 게임 스레드에서 프레임별로 사용된 시간입니다.
Pool Memory Used (스트리밍 텍스처만이 아닌) 텍스처 풀에 현재 할당된 메모리 총량입니다.
Textures In Memory (Target) 모든 스트리밍 텍스처에 필요한 총 메모리입니다.
Textures In Memory (Current) 스트리밍 텍스처만 치고 텍스처 풀에서 현재 할당된 총 메모리입니다.
Textures On Disk 현재 활성 스트리밍 텍스처용으로 디스크에서 사용할 수 있는 텍스처 총량입니다.
Over Budget 과예산 텍스처 메모리 추정량(스트리밍 텍스처만)입니다.
Num Wanting Textures 현재 밉레벨을 스트림 인 시키길 원하는 텍스처 수입니다.
Streaming Textures 메모리에 있는 스트리밍 텍스처 총 갯수입니다.

Stat StreamingDetails


Under Budget 예산내 텍스처 메모리 추정량(스트리밍 텍스처만)입니다.
Rendering Thread Update Time 렌더 스레드에서, 텍스처를 업데이트하는 데 프레임별로 사용된 시간입니다.
Rendering Thread Finalize Time 렌더 스레드에서, 텍스처를 마무리하는 데 프레임별로 사용된 시간입니다.
Static Textures In Memory 현재 스태틱 텍스처에 사용된 메모리 총량입니다.
Dynamic Textures In Memory 현재 다이내믹 텍스처에 사용된 메모리 총량입니다.
LastRenderTime Textures In Memory 현재 LastRenderTime 텍스처에 사용된 메모리 총량입니다.
Forced Textures In Memory 현재 Forced 텍스처에 사용된 메모리 총량입니다.
Lightmaps In Memory 현재 라이트맵과 섀도우맵에 사용된 메모리 총량입니다.
Lightmaps On Disk 현재 활성 텍스처용으로 디스크 에서 사용할 수 있는 라이트맵/섀도우맵 총량입니다.
Intermediate Textures Size 현재 스트리밍 텍스처에 사용되는 임시 메모리 양입니다.
Textures Streamed In (Frame) 이 프레임에 스트림 인 된 텍스처 수입니다.
Textures Streamed In (Total) 런치 이후 스트림 인 된 텍스처 수입니다.
Lightmaps Streamed In (Total) 런치 이후 스트림 인 된 라이트맵/섀도우맵 수입니다.
Intermediate Textures 현재 스트림 인/아웃에 사용된 임시 텍스처 수입니다.
Requests In Cancelation Phase 취소 단계의 요청 횟수입니다.
Requests In Update Phase 밉 업데이트 단계의 요청 횟수입니다.
Requests In Finalize Phase 밉 마무리 단계의 요청 횟수입니다.
Streaming Latency, Average (sec) 링 버퍼의 모든 지연시간 샘플 평균으로, 초 단위입니다.
Streaming Bandwidth, Average (MB/s) 평균 대역폭 사용량으로, MB/초 단위입니다.
Growing Reallocations 런치 이후 늘어난 제자리 재할당(in-place reallocation) 총 횟수입니다.
Shrinking Reallocations 런치 이후 줄어든 제자리 재할당(in-place reallocation) 총 횟수입니다.
Full Reallocations 런치 이후 (텍스처 카피에 관한) 풀 재할당 총 횟수입니다.
Failed Reallocations 런치 이후 (스트림 작업은 조용히 무시된) 재할당 실패 총 횟수입니다.
Panic Defragmentations 런치 이후 긴급 조각모음 총 횟수입니다.
Num Textures Instances 현재 텍스처 인스턴스 수입니다.
Num Lightmap Instances 현재 라이트맵/섀도우맵 인스턴스 수입니다.
Dynamic Streaming Total Time (sec) 런치 이후 다이내믹 프리미티브에 소모된 총 누적 시간으로, 초 단위입니다.

콘솔 명령


STAT Streaming 텍스처 스트리밍 시스템 관련 정보를 표시합니다.
STAT StreamingDetails 텍스처 스트리밍 시스템 관련 세부 정보를 표시합니다.
ListStreamingTextures <partial-name> <partial-name> 과 일치하는 스트리밍 텍스처 목록 전부를 출력합니다. 현재 크기, 몇 초 전에 렌더되었는가, 사용중인 스트리밍 휴리스틱은 어찌되나 등에 대한 정보가 포함됩니다. CSV 포맷이라 엑셀로 복사/붙여넣고 요모조모 살펴볼 수 있습니다.
InvestigateTexture <partial-name> 지정된 <partial-name> 문자열을 포함하는 텍스처 전부에 대해 스트리밍 시스템이 갖고 있는 정보를 모두 출력합니다.
TrackTexture <partial-name> 스트리밍 시스템이 지정된 <partial-name> 문자열을 포함하는 텍스처 추적을 시작하여 상태가 변화된 것들을 로그에 출력합니다.
UntrackTexture <partial-name> 추적 텍스처 목록에서 지정된 텍스처를 제거합니다.
ListTrackedTextures 현재 추적 텍스처 목록을 출력합니다.
TextureGroups 모든 텍스처 그룹에 대한 메모리 정보를 출력합니다.
DumpTextureStreamingStats 텍스처 스트리밍 시스템에 대한 메모리 정보를 출력합니다.