我有两台设备,一台 Android 手机,带有与 Bionic 并行运行的 eGlibC 堆栈,以及一台带有 Debian 的旧 HP 塔。
我的 HP 塔式机有 512 MB RAM。
我的手机有 2GB 内存。
我在两者上都跑在上面以密切关注事物。我一直在我的手机上编译东西,因为手机本身的规格比我的 HP 塔更好,而且我正在研究 ARM 汇编,所以在 ARM 上工作是有意义的,至少对我来说。
我的塔几乎总是内存紧张,通常在任何给定时间点都有大约 20 MB 的可用 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 项目中的每一个代码是不可行的。
- 我应该从哪里开始?