现在已经过去两周了,我一直在尝试寻找这个问题的根本原因。
配置:16GB - 256GB - 15 英寸 Macbook Pro 2019,2.4 GHz,配备 8 核 Intel Core i9 - macOS Catalina - Android Studio 4.1
会发生什么:
- 当我编写代码时,Android Studio IDE 运行良好且正常。
- 当我构建一个项目时,Java 进程的 CPU 使用率就会飙升至 1000% 以上(附加屏幕截图),有时甚至高达 1500%。
- Mac 开始过热。奇怪的是,如果 Mac 处于充电模式,它不会关机,而如果不是,它就会关机。
- Mac 关机约 1 分钟,然后再次开机并继续执行之前的任务。(这让我很困惑,因为我不太确定它是否真的关机了,一切都表明了这一点,因为风扇暂停了,屏幕关闭了,触控条和键盘灯都关闭了,Mac 仍然像关机一样,但 1 分钟后突然开机,继续执行发生这种情况之前正在执行的操作,这太奇怪了)
- Mac 在任何其他工作上的表现都非常正常,无论是浏览、视频通话还是流媒体。
我已尝试过的一切:
- 尝试构建一个基本的 Hello World 项目 (Java 的 CPU 仍然飙升至 800%)
- 尝试增加堆大小进行实验。
- 重新安装了android studio。
- 运行 Mac 硬件诊断。- 未发现问题。
- 对 SMC 和 NVRAM 进行了重置。
- 将 Mac 恢复出厂设置并重新安装 macOs Catalina
目前我的笔记本电脑只有两个第三方软件——Chrome 和 Android Studio。
我发现很多关于 CPU 峰值高达 300% 的问题,他们的解决方案都是针对检查第三方应用程序和硬件问题或优化 Android Studio。它们对我都不起作用。请帮助我解决这个问题,因为它影响了我的工作和效率。
答案1
顺便说一下,1000% 这个数字是因为在活动监视器的顶部,100% 代表“一个核心”。因此,1000% 意味着 10 个核心已被充分利用 [或者数据读取因太忙而无法保持计数而出现问题。]
底部的数字是整个 CPU 的,这肯定表明它完全繁忙了 98%。
编译总是会使用尽可能多的线程和核心。这本身不是问题。问题是您的 Mac 无法在电池供电的情况下保持足够低的温度,同时保持 98% 的繁忙状态;要么是电池电量不足,要么是气流不足。仅从这些数据很难判断您是真的因过热关机还是因电量不足关机。
我过去使用较少核心进行编译的一种方法是,在 Parallels [或 Fusion 等] 中运行相同操作系统的虚拟机,并为其分配 Mac 拥有的“真实”核心数量。这样,它在编译时仅使用“一半功率”。
这除了可以降低总体负载外,还意味着虚拟机之外还有核心,因此您可以继续处理其他事情,而不会因为编译占用了 97% 的 CPU 能力而陷入困境。您可以通过为虚拟机分配更少的核心来进一步减少这种情况。
您唯一真正的选择是将其插入电源,或检查电池和气流。
写完这篇文章后,我发现 VMWare 正在提供免费版 Fusion Player,可能对测试这个很有用。我没有直接点击链接进行注册,只是看了第一页,我自己不使用 VMWare,我用的是 Parallels,但可能值得一试 -https://my.vmware.com/web/vmware/evalcenter?p=fusion-player-personal