RAM 수수께끼: 실제로 얼마나 많은 RAM이 필요한가?

click fraud protection

Android 기기가 6GB RAM으로 이동하기 시작하면서 우리는 스스로에게 다음과 같은 질문을 던져야 합니다. 실제로 얼마나 많은 RAM이 필요한가? 우리가 탐험하는 동안 따라오세요!

최근에 우리는 6GB RAM이 탑재된 Android를 실행하는 최초의 스마트폰 중 하나에 대한 발표를 접하게 되었습니다.

6GB! 이는 모바일 장치의 RAM 용량이 너무 큽니다.

숫자 게임을 시작하는 것은 Vivo Xplay5 엘리트. 회사로서의 Vivo는 중국 외부에서는 잘 알려져 있지 않을 수도 있지만, 이 회사는 과거에 매우 얇은 스마트폰을 만든 것으로 알려져 있습니다. Xplay5 Elite를 통해 그들은 왕 사이에 서는 것을 목표로 하는 장치에 많은 사양을 맞추려고 노력했습니다.

Vivo Xplay 5 Elite는 본체의 금속 프레임에 듀얼 커브드 5.43인치 QHD Super AMOLED 디스플레이를 갖추고 있습니다. 내부에는 2.15Ghz 클럭의 최신 Qualcomm Snapdragon 820 SoC, Adreno 530 GPU, 6GB LPDDR4 RAM 및 128GB 비확장 스토리지가 있습니다. 카메라의 경우 후면은 f/2.0의 16MP Sony IMX298 센서이고 전면은 8MP 슈터입니다. 이러한 사양과 장치의 금속 구조를 염두에 두면 중국 소비자에게도 상당한 비용이 든다는 것은 놀라운 일이 아닙니다. CNY 4,288($660)의 가격으로 이 제품은 저렴한 중급형 제품이라기보다는 확실히 중국의 주력 제품입니다.

Vivo Xplay5 Elite는 현재 6GB RAM을 갖춘 유일한 스마트폰이 아닙니다. 덜 알려졌으나 새로 설립된 중국 OEM인 Vernee는 중급형 장치인 Vernee Apollo를 출시하여 엄청난 양의 RAM에 대한 소비자 접근성을 높이는 것을 목표로 하고 있습니다.

Vernee Apollo에는 MediaTek의 고급 SoC인 Helio X20이 탑재될 예정입니다. 앞서 언급한 6GB RAM, 128GB 내부 스토리지, 21MP Sony IMX230 후면 카메라 및 5.5인치 2K 디스플레이가 있습니다. 이 모든 것을 합치면 Apollo의 가격은 399.99달러가 됩니다. 우리에게 보내진 언론 정보에는 중국 가격이나 목표 시장에 대한 언급이 없었기 때문에 전화기는 여전히 미스터리입니다.

이 두 전화기 모두 우리에게 질문을 하게 됩니다. 정말 필요한 지금 RAM이 너무 많아?

이 질문에 대답하려면 Android가 메모리 관리와 RAM을 처리하는 방법을 이해해야 합니다. Mishaal은 Android 메모리 관리의 복잡성을 훌륭하게 설명했습니다. 이전 기사, 이는 6개월이 지난 후에도 여전히 관련성을 유지합니다.

"Android가 메모리 관리를 처리하는 방식은 활동이 종료된 후 모든 프로세스를 즉시 종료하는 것이 아니라(예: 앱을 종료하기 위해 홈 버튼을 누르면) 시스템이 더 많은 메모리를 확보하기 위해 프로세스를 종료해야 할 때까지 프로세스는 메모리에 유지됩니다. 시스템은 유지할 프로세스와 종료할 프로세스를 어떻게 결정합니까? LMK(낮은 메모리 킬러) 드라이버. 모든 프로세스에는 프로세스의 중요도에 따라 oom_adj 값을 동적으로 조정하는 ActivityManager 서비스에 의해 -17에서 15 사이의 oom_adj 값이 ​​할당됩니다. oom_adj 값이 ​​높을수록 메모리를 확보하기 위해 프로세스가 종료될 가능성이 높고, 값이 낮을수록 프로세스가 종료될 가능성이 낮다는 의미입니다."

"Android는 각 프로세스를 계속 실행하는 데 가장 중요한 것부터 가장 덜 중요한 것까지 5가지 범주(전경, 표시, 서비스, 배경 및 비어 있음)로 분류합니다. 각 범주에 속하는 프로세스는 남은 여유 메모리의 다양한 수준(LMK minfree 값이라고 함)에서 종료됩니다. 예를 들어 장치의 LMK minfree 값이 "2560,4090,6144,7168,8192"(4k 페이지로 나열되며 /sys/module/lowmemorykiller/parameters/minfree에서 읽을 수 있음)로 설정된 경우 장치는 여유 메모리가 32MB 미만으로 떨어지면 '비어 있음'으로 정의된 프로세스, 여유 메모리가 28MB 미만으로 떨어지면 '백그라운드'로 정의된 프로세스, 여유 메모리가 아래로 떨어지면 포그라운드 앱이 종료됩니다. 10MB(하늘이 금지합니다!) 이제 이러한 minfree 값은 제조업체가 자신의 장치에 가장 적합하다고 생각하는 방식에 따라 원하는 대로 조정하기를 좋아하기 때문에 요즘 대부분의 장치에서는 일반적이지 않습니다. 하지만 이 간략한 설명에서 알아야 할 점은 사용 가능한 메모리가 많을수록 중요한 프로세스가 종료되는 것을 볼 가능성이 줄어든다는 것입니다."

Mishaal이 언급한 것처럼 실제 값은 OEM마다 다르므로 비슷한 사양의 다양한 휴대폰에서 멀티태스킹을 통해 다양한 경험을 할 수 있습니다. 혼합의 또 다른 변수는 장치의 블로트웨어 양입니다. TouchWiz와 같이 크게 수정된 Android UX는 재고에 따라 Android보다 많은 기능을 포함하는 경향이 있습니다. AOSP는 OEM이 원하는 수준으로 작동하려면 시스템에 훨씬 더 많은 리소스를 할당해야 합니다. 그것을. 이로 인해 타사 앱이 캐시될 공간이 줄어들고 결과적으로 낮은 메모리 사용량이 악화됩니다.

주로 부드러운

"2GB RAM이 있는 장치와 3GB RAM이 있는 장치의 주요 차이점은 3GB RAM이 있는 장치는 RAM은 LMK 드라이버를 실행하여 종료하지 않고도 백그라운드에서 더 많은 프로세스를 캐시할 수 있어야 합니다."

따라서 이론적으로 하드웨어 수준에서 더 많은 RAM을 사용할 수 있으면 OS 수준에서 캐시된 프로세스가 더 많아지고 OEM이 참여할 수 있는 풀도 더 커집니다. 그러나 RAM이 2GB인 장치에서도 시스템과 앱이 필요한 항목을 잠근 후에도 훨씬 더 많은 여유 RAM이 표시되는 경우가 많습니다. 다음은 다양한 장치에서 사용 가능한 RAM을 비교한 Mishaal의 게시물과 동일한 갤러리입니다.

보시다시피 Nexus 5 및 Nexus 6처럼 UI가 가장 가벼운 기기는 기기에서 사용할 수 있는 여유 RAM의 비율이 가장 높습니다. 가장 무거운 제품인 4GB RAM과 TouchWiz를 탑재한 Samsung Galaxy Note 5에는 앱 캐싱에 사용할 수 있는 약 1.7GB RAM이 있습니다. 이렇게 큰 여유 RAM 풀이 있음에도 불구하고 Note 5는 장치가 공격적인 메모리 처리에 의존하는 멀티태스킹 문제로 어려움을 겪었습니다. 이는 OEM이 LMK 값을 선택했기 때문입니다. 하드웨어 수준에서 더 많은 RAM을 펌핑하는 것은 도움이 되지 않습니다! 멀티태스킹 개선을 위한 Note 5의 수정 사항에는 실제로 이러한 LMK 값을 더 많이 조정하는 것이 포함되었습니다. 삼성의 기본 설정보다 멀티태스킹 친화적인데, 이는 멀티태스킹에 중점을 둔 장치로서는 아이러니합니다. 생산력. 따라서 RAM이 더 많다고 해서 장치가 자동으로 멀티태스킹에 더 친숙해지는 것은 아닙니다.

갤러리로 다시 돌아오면 표시된 여유 RAM의 일부는 이미 앱 프로세스 캐싱에 사용되었지만 이 중 일부는 실제로 아무 작업도 하지 않고 유휴 상태로 남아 있습니다. 다음은 표시된 여유 RAM과 캐시된 RAM 및 유휴 RAM으로의 분할을 보여주는 OnePlus One의 스크린샷입니다.

활성 게임을 교체하고 캐시된 프로세스를 표시하는 옵션을 선택하는 데 걸린 약 1초의 짧은 순간에도 시스템은 사용된 실제 RAM을 줄였습니다. 이는 NFS No Limits(이 경우에는 NFS No Limits) 게임의 우선순위가 Foreground 프로세스에서 Background 프로세스로 이동했기 때문에 발생했습니다. 이는 활성 사용 중인 RAM이 2.5GB에서 1.9GB로 변경되고 NFS 제한 없음 게임 프로세스가 캐시되므로 OS 흐름을 항상 원활하게 유지하기 위한 목적으로 수행되었습니다. 게임의 우선순위가 바뀌면서 이제 OS에 실제로 더 많은 여유 RAM이 필요한 경우 게임을 종료할 수 있습니다. 여기에는 사용자 상호 작용이 필요하지 않습니다.

이 예의 요점은 시스템과 모든 프로세스의 우선순위를 지정하는 데 있어 Android의 메모리 관리가 어떻게 더욱 효율적으로 발전했는지 강조하는 것이었습니다. 언제든지 캐시된 상태로 유지되는 앱은 너무 많습니다. OS는 이상적으로 캐싱 프로세스에서 전체 여유 RAM을 사용하지 않습니다. 사용 가능한 RAM의 일부는 유휴 상태로 남아 있습니다. 이는 프로세스가 RAM 사용량을 매우 빠르게 확장해야 하는 경우를 위해 의도적으로 설계된 것입니다.

OEM이 개별 휴대폰에 대해 다시 정의한 대로 앱 프로세스에도 RAM 할당 한도가 있습니다. 에 따르면 오래된 토론 게시물 Android 프레임워크 엔지니어인 Dianne Hackborn의 글에 따르면 자바 힙 가비지 수집이 시작되기 전에 Java 개체가 상주하게 되는 위치이지만 NDK를 영리하게 사용하면 그 범위도 확장될 수 있습니다. 간단히 말해서 이는 해당 기기에서 실행하려는 모든 앱에 사용할 수 있는 RAM에 최대 한도가 있음을 의미합니다. 구형 장치의 경우 이 힙이 24MB로 설정되었지만 최근 장치에서는 장치의 RAM 증가와 하드웨어 요구 사항 증가로 인해 크기가 늘어났습니다. 안드로이드의 호환성 정의 문서 ~을 위한 안드로이드 6.0 OEM이 이러한 힙을 설정해야 하는 최소값을 언급합니다(섹션 3.7). 비교를 위해 CM12.1의 OnePlus One은 일반 Dalvik VM 힙에 대해 192MB 제한을 자랑하며 애플리케이션 매니페스트에 android: LargeHeap=true를 지정하는 앱에 대해 최대 512MB를 허용합니다. 이론적으로 단일 앱은 내 기기에서 최대 512MB의 RAM만 사용할 수 있습니다. 그 외에도 다른 필수 시스템 프로세스가 자유롭게 흐르도록 유지하기 위해 가비지 수집이 시작됩니다.

이제 앱의 힙 크기 제한을 우선순위에 따라 할당된 LMK 값과 결합합니다. 일정량의 여유 RAM을 유휴 상태로 유지하려는 OS의 주장과 Android의 멀티 태스킹이 어떻게 작동하는지 상상할 수 있습니다. 공장. 이는 하드웨어, 소프트웨어 및 앱 자체 사이에 많은 변수가 포함된 복잡한 메커니즘입니다. 이론적으로는 최고의 플래그십이 잠재력을 최대한 활용할 수 있도록 하면서 가장 기본적인 장치도 작동할 수 있도록 미세 조정되었습니다. 실제로 이것은 완벽한 세상이 아니므로 그런 일도 일어나지 않습니다. 즉, 4GB RAM이 있는 장치가 4GB RAM이 있는 다른 장치와 동일하게 작동한다는 보장이 없습니다. 또한 특정 임계값을 초과하는 추가 GB RAM이 멀티태스킹 및 메모리 처리 성능에 직접적으로 비례하여 증가한다는 의미도 아닙니다.

실용적이고 미래

그럼 원래 질문으로 돌아가서, 2016년 초에 장치에 6GB RAM이 정말로 필요합니까? 나에게 대답은 '아니요'입니다.

내가 소유한 대부분의 장치에는 3GB의 LPDDR3 RAM이 있고, 한 장치에는 4GB의 RAM이 있습니다. 그리고 멀티태스킹에 있어서는 성능 면에서 눈에 띄는 차이가 없습니다. 다음은 최근 OnePlus X 리뷰에서 나온 멀티태스킹 데모입니다. 이 장치는 3GB RAM과 재고에 가까운 Android ROM을 갖추고 있습니다.

이 장치는 이러한 앱을 하나도 종료하지 않고도 12개의 앱(활성 화면 레코더를 포함하면 13개) 사이를 전환하는 데 문제가 없었습니다. 다시 로드하거나 다시 그리는 일이 없었으며 이 경험은 재부팅이나 수동 앱 종료 없이 매일 사용하는 동안 놀랍도록 일관되게 유지됩니다. 일반 소비자는 실제 사용 중에 이러한 많은 앱 사이를 적극적으로 전환할 필요가 없습니다!

하지만 사용자가 대신에 여러 게임 사이를 전환하고 싶다면 어떻게 해야 할까요? 동의합니다. 위에서 언급한 요소가 작용하여 기껏해야 몇 가지 게임 간에만 전환할 수 있습니다. 이러한 조건에서 더 많은 물리적 RAM을 사용하면 장치가 메모리에 더 많은 게임을 수동적으로 저장할 수 있습니다. 그러나 이러한 이점에 대한 반대점은 많은 게임이 멀티태스킹 시 강제로 다시 로드되는 경우가 많다는 것입니다. 이들의 의도는 게임이 실행되는 동안 게임 데이터를 조작하는 부정 행위 메커니즘을 방지하는 것입니다. 따라서 다시 로드/재동기화/새로 고침을 수행하면 강제로 무결성 검사가 다시 시작됩니다. 그들의 의도는 다르지만 이로 인해 많은 게임이 멀티 태스킹에 적합하지 않게 됩니다.

그 영광스러운 RAM을 모두 활용하는 데 방해가 되는 몇 가지 요소가 더 있습니다. 장치의 LPDDR4 RAM 6GB가 모두 필요한 작업/여러 작업을 결합한 경우 모바일 SoC 형태로 병목 현상이 훨씬 더 커질 것입니다. 물론 Snapdragon 820과 Helio X20은 각 회사의 주력 프로세서일 수 있지만 여전히 모바일 SoC입니다. 따라서 발열, 방열, 열 조절 및 배터리와 같은 다른 제한 사항이 있습니다. 장기간에 걸쳐 너무 많은 RAM을 사용할 만큼 집약적인 작업을 수행하기에는 좋지 않은 선택이 될 수 있습니다. 시간. 그러한 경우에는 손에 쥐고 싶지 않은 시스템을 사용하는 것이 더 좋습니다. 생성할 수 있는 열과 소비할 수 있는 전력에 대해 보다 자유로운 제한이 있는 것입니다.

결국 여유 RAM이 아무리 많아도 앱은 여전히 ​​쫓겨날 것입니다. 이것이 바로 메모리 관리가 작동하는 방식입니다. 힙 크기를 더 늘리면 도움이 되는 것처럼 RAM을 크게 사용하면 여전히 이점이 있습니다. 비트맵 자산 강화 더 높은 해상도의 디스플레이에서 기기의 QHD 해상도를 뛰어넘을 수 있습니다. 시장 전반에 걸쳐 증가된 힙 크기 추세는 더 많은 작업을 수행할 수 있는 앱으로 이어질 것입니다. RAM이 손댈 수 없도록 잠겨 있지 않는 한 항상 일부 또는 다른 용도로 사용됩니다. 그러나 플래그십의 화면이 1080p에서 1440p 사이를 오가는 것처럼 보인다는 점을 고려하면 앞으로 1~2년 동안은 4GB가 합리적인 표준으로 보일 수 있습니다.

결론적으로 우리는 다음 질문에 대답하게 됩니다. 정말 필요한 지금 RAM이 너무 많아? 아니요, 그렇지 않습니다. 가격을 낮게 유지해야 하는 요소 중 하나인 장치의 경우 3GB 또는 4GB RAM이면 충분합니다. 가격에 크게 신경 쓰지 않는 사용자의 수요가 있는 플래그십의 경우 미래 ​​보장에 해를 끼치지 않을 것입니다. 고객으로서 아직은 해당 RAM을 모두 사용하지 않을 것이라는 점을 참고하세요.

6GB RAM을 탑재한 휴대폰에 대해 어떻게 생각하시나요? 아래 댓글로 여러분의 생각을 알려주세요!