Android 面试奇怪问题

2018-05-21 16:06:24 +08:00
 GLee9507
今天面试一家做车载的公司,被问到一个奇怪的问题。---如何优化、降低 CPU 使用率?
唉,没回答上来,我觉得 CPU 使用率是无法人为干预的,大家怎么看?
13121 次点击
所在节点    Android
58 条回复
jerry12547
2018-05-21 16:17:16 +08:00
。。说个抖机灵的方法。。选个 intel X? 18 个框框 使用率肯定降低了(斜眼)
sanjusss
2018-05-21 16:21:53 +08:00
可能指的是程序的 CPU 占用率吧。
dychenyi
2018-05-21 16:25:46 +08:00
运用 GPU 运算? 车载没那么高级吧。

又或者说他就希望你说出使用针对优化的库而已?针对硬件编译优化驱动,上层应用?
又或者是用空间换时间?
Humorce
2018-05-21 16:26:22 +08:00
控制 socket 线程、媒体资源文件的处理等等 不都是可以通过人为优化实现吗?
deadEgg
2018-05-21 16:31:24 +08:00
面试官说的也太空了
gystry
2018-05-21 16:36:51 +08:00
面试官炫技
enenaaa
2018-05-21 16:37:36 +08:00
意思就是优化执行效率, 减少 cpu 占用吧。
比如游戏,经常因为高 cpu/gpu 占用导致手机过热,掉电过快问题。
lincanbin
2018-05-21 16:43:39 +08:00
提升程序性能
CrisTao
2018-05-21 16:46:25 +08:00
cpu 的话不就是做性能优化么,多线程、io、ui (虽然说车载没啥 ui 的)太多可以处理的
nullcc
2018-05-21 16:47:30 +08:00
这个题目问得比较宽泛,答全了比较难,我个人认为有一些点可以考虑:

1. 写无限循环的时候要注意检查跳出条件
2. 计算密集型工作,看看是否能拆分计算过程,将计算分摊到多个 CPU (或者多台计算机)上进行
3. 如果不需要在线的实时计算,可以实现成定时任务离线计算,最后再汇总结果
4. 某些计算可以尝试利用 GPU
5. 一些代价高的计算,如果可以忍受一定的非实时性,可以缓存结果
atfeel
2018-05-21 16:49:32 +08:00
降低程序刷新率,CPU 就降下来了
GLee9507
2018-05-21 16:58:49 +08:00
@Humorce 控制线程、媒体资源文件,请问如何优化
Arsenal16
2018-05-21 17:04:12 +08:00
CPU 的占用率应该可以人为控制, 搜一下微软面试题有讲这个的.
GLee9507
2018-05-21 17:05:45 +08:00
@Arsenal16 难道是 sleep 一下?
GLee9507
2018-05-21 17:06:38 +08:00
@nullcc 当时我想应用层开发也不需要什么密集型计算,就算有密集型计算多说开几个线程,充分利用多核心而已,也谈不上什么优化
jinhan13789991
2018-05-21 17:08:58 +08:00
关机啊~
Humorce
2018-05-21 17:13:06 +08:00
@GLee9507
这个是根据产品实际运用场景去决定如何优化的,
进行搜索都能找到一些优化方式了。
#9 #10 的两位也提供了更多的优化方向。
nullcc
2018-05-21 17:38:24 +08:00
@Arsenal16 我记得《编程之美》有一题让 CPU 占用率曲线呈正弦图形的
wizardoz
2018-05-21 17:43:49 +08:00
我知道提高 CPU 占用率的方法,坐等降低的方法
kx5d62Jn1J9MjoXP
2018-05-21 17:44:57 +08:00
面试是双向的, 问题提的不好也说明对方技术实力不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/456552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX