메모리5 [Unity] TMP폰트 관련 메모리 최적화 회사 프로젝트에서 다국어 작업 중 메모리 최적화를 진행한 적이 있었다.플레이 후 게임 옵션창에서 모든 언어를 한 번씩 설정을 해놓으면 폰트 관련 개체 및 아틀라스 텍스처 등이 425.4MB의 메모리를 차지하고 있었다. 여러 RnD 끝에 동일 환경에서 9.4MB까지 최적화에 성공했다.■ 기존 · Total: 425.4MB· Native Memory: 213.3 MB· GPU Memory: 212.0 MB· Managed: 108.5 KB 언어 변경 시 TMP 개체의 하위 개체로 Submesh UI개체가 생성된다. 이는 새로운 언어를 세팅한 뒤 렌더링 중인 문자가 기본 폰트에 포함되어 있지 않은 상황이라서 Fallback Font Asset들을 탐색하여 원하는 문자를 내포하고 있는 폰트 에셋의 Atlas .. 2025. 2. 1. [컴퓨터 구조] 메모리 계층 구조, 캐시 메모리 ■ 메모리 계층 구조 (Memory Hierarchy)저장 장치의 예로 레지스터, 메모리(RAM), USB 메모리가 있다. 이러한 저장 장치의 대표적인 특징 두 가지로는 첫째, CPU와 가까울 수록 저장 장치의 접근 속도는 빠르고, 멀리있을 수록 느리다.둘째, 속도가 빠른 저장 장치는 비싸고 용량이 작으며 거리가 멀어질수록 반대된다. 이러한 특징으로 인하여 컴퓨터는 여러 개의 저장 장치를 혼용해서 사용한다. 그 여러 개의 저장 장치의 계층 구조를 세 가지 특성을 기준으로 나타낸 것을 메모리 계층 구조(Memory Hierarchy)라고 한다.* 여기서 말하는 Memory 는 Ram이 아니라 저장 장치 Memory를 의미한다. ■ 캐시 메모리 (Cache Memory)CPU가 메모리에 접근하는 시간은 C.. 2024. 12. 1. [컴퓨터 구조] 메모리 주소 ■ 물리 주소 & 논리 주소(1) 물리주소 : 메모리 하드웨어가 사용하는 주소 (정보가 실제로 저장된 하드웨어상의 주소)(2) 논리주소 : CPU와 프로세스가 사용하는 주소 (프로세스 각각에 부여된 0번지 부터 시작되는 주소) * CPU와 프로세스는 현재, 물리적 주소인, 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있지 않다. 그 이유는 프로그램이 메모리에 적재될 때마다 주소가 달라지고, 다른 프로그램이 실행되거나 삭제될 때마다 모든 주소가 달라지기 때문이다. 이런 상황에서 현재 프로세스와 CPU가 특정 메모리 주소에 접근할 때 어떻게 동작할까? 먼저 CPU가 이해하는 주소는 논리주소이기 때문에 메모리와 상호작용을 하려면 논리주소와 물리주소 간의 변환이 이루어져야 한다. 서로 다른 주소 체계를 .. 2024. 12. 1. [컴퓨터 구조] RAM ■ RAM의 종류1. DRAM (Dynamic Ram)저장된 데이터가 주기적으로 소멸되는 RAM이다. 이를 방지하기 위해 주기적으로 데이터를 재활성화해야 하는 단점이 존재한다. 하지만, 그럼에도 불구하고 우리가 일반적으로 사용하는 메모리는 DRAM이다. 이는 경제적인 이유에서 오는데소비 전력이 낮고 저렴하면서 집적도가 높기 때문에 대용량으로 설계하기가 용이하기 때문이다. * 집적도: 집적도란 1개의 반도체 칩에 몇 개의 소자가 들어가 있는지를 나타내는 정도이다. 즉, 집적도가 높다는 것은 소자들이 더 빽빽하게 들어갈 수 있다는 뜻. (출처: 토스) ※ 늘 그렇듯 비쌀수록 성능이 좋고 단점이 적으며, 저렴할수록 성능은 비교적 안좋고 단점이 많아진다. 2. SRAM (Static Ram)시간이 지나도 저장.. 2024. 12. 1. [Unity] 메모리 최적화를 위한 에셋 관리 [영상]https://www.youtube.com/watch?v=52ehLUfk3DQ&list=PL7g8Lh8G4gEfPhXO06haByx6KNzCrEoXR&index=10 [정리] [1. 오디오] - 모바일 같은 경우 Force To Mono를 활성화하는 것을 권장. 왼쪽 오른쪽 구분해서 사운드를 듣는 경우는 별로 없으니 - Decompress On Load는 말 그대로 메모리이 올려놓는거니 권장하지 않음. 짧은 사운드( - Compression Format은 엄청 짧으면 ADCPM을 그 외 웬만하면 Vorbis 권장. IOS는 MP3를 하드웨어 레벨에서 디코딩하는데 유니티 자체에서는 하드웨어 레벨에서 디코딩 하지않기 때문에 IOS의 이점을 이용할 수 없음. - Mute인 상태에서도 메모리에 올라가있음.. 2024. 9. 29. 이전 1 다음