![메모리 압력이 너무 높지만 GNU-Linux가 계속 실행 중일 때 Android가 충돌하는 이유는 무엇입니까?](https://linux55.com/image/40269/%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EC%95%95%EB%A0%A5%EC%9D%B4%20%EB%84%88%EB%AC%B4%20%EB%86%92%EC%A7%80%EB%A7%8C%20GNU-Linux%EA%B0%80%20%EA%B3%84%EC%86%8D%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%BC%20%EB%95%8C%20Android%EA%B0%80%20%EC%B6%A9%EB%8F%8C%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 Bionic과 나란히 실행되는 eGlibC 스택이 있는 Android 휴대폰과 Debian이 설치된 오래된 HP 타워라는 두 개의 장치를 가지고 있습니다.
내 HP 타워에는 512MB RAM이 있습니다.
내 휴대폰에는 2GB 메모리가 있습니다.
나는 사물을 주시하기 위해 두 가지를 모두 실행했습니다. 휴대폰 자체의 사양이 내 HP 타워보다 더 좋기 때문에 휴대폰에서 자료를 컴파일해 왔으며 ARM 어셈블리 작업을 하고 있으므로 적어도 나에게는 ARM 작업이 의미가 있습니다.
내 타워는 거의 항상 메모리가 부족합니다. 일반적으로 특정 시점에 약 20MB의 여유 RAM이 있으며, 수행 중인 작업에 따라 더 적은 경우도 있습니다. 내 타워는 40일 동안 가동되었습니다.
$uptime
17:34:14 up 40 days, 8:54, 12 users, load average: 2.60, 2.14, 1.58
그러나 Android를 실행하는 내 휴대폰(낮은 메모리 환경을 위해 설계되어야 함)을 약 50MB의 사용 가능한 메모리로 푸시하면 충돌이 발생하며 이제 Android SDK/NDK와 같은 대규모 프로젝트를 컴파일하고 있으므로 이런 일이 더 자주 발생합니다.
- 왜 이런거야?
- 가능성은 무엇입니까? 이 문제를 해결하고 싶지만 Android 프로젝트의 모든 코드를 살펴보는 것은 불가능합니다.
- 어디서부터 시작해야 할까요?