OS X의 압축 메모리 이해하기

메모리 압축으로 Mac 성능 향상

OS X Mavericks 의 출시와 함께 Apple은 Mac에서 메모리를 관리하는 방법을 변경했습니다. 메모리 압축 기능을 통해 Mac은 성능을 유지하거나 높이면서 더 적은 메모리로 더 많은 작업을 수행 할 수 있습니다. 이전 버전의 OS X에서는 메모리 사용이 꽤 표준적인 메모리 관리 시스템을 중심으로 이루어졌습니다. 앱은 RAM 할당을 요청했으며 시스템은 요청을 이행했으며 앱은 더 이상 필요하지 않을 때 RAM을 돌려 보냈습니다.

운영 체제는 사용 가능한 RAM의 양과 누가 그것을 사용했는지 추적하는 더러운 작업을 처리했습니다. OS는 또한 필요한 RAM 양을 사용할 수 없다면 어떻게해야할지 알았습니다. 마지막 부분은 시스템이 가상 RAM (SSD 또는 하드 드라이브의 스왑 공간)을 사용하려고 할 때 Mac의 성능에 악영향을 미칠 수 있기 때문에 가장 중요했습니다.

애플은 심지어 액티비티 모니터 (Activity Monitor )를 제공했는데, 그 중에서도 맥의 RAM 사용 방식을 모니터 할 수 있었다. 액티비티 모니터는 여전히 사용 가능하지만 메모리 모니터링 기능은 크게 개선되었습니다. 맥이 압축 된 메모리를 사용하여 더 나은 RAM을 사용할 수있는 방법을 모방 한 것입니다.

압축 메모리

압축 메모리는 Apple 만의 독창적 인 것이 아닙니다. 컴퓨팅 시스템은 오랫동안 다양한 형태의 메모리 압축을 사용해 왔습니다. 80 년대 중반과 90 년대 초반에 Mac을 사용했다면 Connectix의 RAM Doubler와 같은 제품을 기억할 수 있습니다.이 제품은 RAM에 저장된 데이터를 압축하여 Mac에서 사용 가능한 여유 메모리의 양을 효과적으로 늘 렸습니다. Mac Plus가 시작되면 RAM Doubler 아이콘이 표시되는 것을 기억합니다. 4MB의 RAM 만 갖춘 Mac Plus는 RAM Doubler가 제공 할 수있는 모든 도움을 필요로했습니다.

압축 된 메모리 유틸리티는 컴퓨터 제조업체와 OS 개발자가 더 나은 메모리 관리 시스템을 만들면서 부끄러워졌습니다. 동시에 메모리 가격은 하락했다. 메모리 압축 시스템이 인기를 잃게 만든 다른 요인은 성능 문제였습니다. 메모리 압축 알고리즘은 상당한 처리 능력을 필요로했습니다. 즉, 적은 RAM으로 더 많은 작업을 처리 할 수 ​​있지만 메모리를 압축하거나 압축을 풀어야 할 때 컴퓨터를 쓰러 뜨리는 경향이있었습니다.

메모리 압축은 저렴한 다중 코어 프로세서의 출현으로 인해 다시 돌아오고 있습니다. 메모리 압축에 사용되는 루틴을 많은 프로세서 코어 중 하나에 오프로드 할 수 있으면 메모리를 압축하거나 압축 해제해야 할 때 성능이 저하 될 가능성이 거의 없습니다. 단순히 배경 작업이됩니다.

Mac에서 압축 된 메모리 작동 방법

Mac에서의 메모리 압축은 RAM 리소스를보다 효율적으로 관리하고 Mac 드라이브와의 데이터 페이징 인 가상 메모리 사용을 방지하거나 크게 줄임으로써 OS 및 응용 프로그램 성능을 향상 시키도록 설계되었습니다.

OS X Mavericks (또는 그 이상)에서 OS는 비활성 메모리를 찾습니다. 비활성 메모리는 현재 사용 중이 아니지만 응용 프로그램에서 사용할 데이터를 보유하고있는 메모리입니다. 이 비활성 메모리는 보유하고있는 데이터를 압축하므로 데이터가 차지하는 메모리가 적습니다. 비활성 메모리는 배경에 있고 사용되지 않는 앱일 수 있습니다. 예를 들어 워드 프로세서는 오픈 상태이지만 비활성 상태이므로 압축 된 메모리에 대해 읽거나 읽는 중입니다. (그런데이 기사를 들러 주셔서 감사합니다.) 웹 브라우징에 바쁜 동안 OS는 워드 프로세서의 메모리를 압축하여 웹에서 영화를 볼 때 사용하는 Flash Player와 같은 다른 응용 프로그램에서 사용할 RAM을 확보합니다.

압축 프로세스가 항상 활성화되어 있지 않습니다. 대신 OS는 RAM에 여유 공간 이 얼마나 있는지 확인합니다. 상당한 여유 메모리가있는 경우 비활성 메모리가 많이 있어도 압축이 수행되지 않습니다.

여유 메모리가 모두 사용되면 OS는 압축하기 위해 비활성 메모리를 찾습니다. 압축은 메모리에 저장된 가장 오래된 사용 데이터로 시작하여 사용할 수있는 충분한 여유 메모리가 있는지 확인하기 위해 앞으로 나아갑니다. RAM의 압축 된 영역에있는 데이터가 필요할 때 OS는 데이터를 즉시 압축 해제하고 요청하는 응용 프로그램에서 데이터를 사용할 수 있도록합니다. 압축 및 압축 풀기 루틴은 프로세서 코어 중 하나에서 동시에 실행되므로 압축 / 압축 해제가 진행되는 동안 성능 손실이 발생하지는 않습니다.

물론 압축이 달성 할 수있는 한계가 있습니다. 어떤 시점에서 계속해서 앱을 시작하거나 RAM을 중도하게하는 메모리 집약적 인 앱을 사용하는 경우 Mac에 충분한 여유 공간이 없습니다. 과거와 마찬가지로 OS는 비활성 RAM 데이터를 Mac 드라이브로 스왑하기 시작합니다. 그러나 메모리 압축 기능을 사용하면 대부분의 사용자에게 매우 드물게 발생합니다.

운영 체제가 메모리를 드라이브로 스왑해야하는 경우에도 OS X의 메모리 관리 시스템은 전체 길이의 드라이브 세그먼트에 압축 된 데이터를 기록하여 SSD의 성능을 높이고 마모를 줄임으로써 압축 된 비활성 메모리를 활용 합니다 .

활동 모니터 및 메모리 압축

활동 모니터의 메모리 탭을 사용하여 압축되는 메모리 양을 모니터링 할 수 있습니다. Memory Pressure 그래프에 압축 된 메모리가 여러 개 표시됩니다. RAM 데이터를 압축하는 데 OS가 얼마나 적극적으로 관련되어 있는지 나타냅니다. RAM 공간이 충분하지 않고 메모리가 드라이브로 스왑 아웃되어야하는 경우 그래프는 초록색 (약간의 압력)에서 노란색 (중요한 압력)으로 바뀌고 마지막으로 빨간색으로 바뀝니다.

따라서 매버릭스를 설치 한 이후 Mac의 성능이 약간 더 뛰었을 것으로 생각되면 메모리 관리가 진보하고 메모리 압축이 다시 이루어 졌기 때문일 수 있습니다.