前言

回顾一下自己这段时间的经历,因公司突然通知裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感觉今年的寒冬有点冷。公司开始第二波裁员,我决定主动拿赔偿走人。后续的面试过程我做了一些准备,基本都能走到hr面,后面我也顺利地拿到了offer,我给大家分享下我的求职体会,希望能给大家一些参考。

就我身边的例子来说,很多开发者会存在以下3个问题:

  1. 对性能优化的流程不是很清晰。 初步定为一个疑似瓶颈点后,就兴高采烈地吭哧吭哧开始干,最终解决的问题其实只是一个浅层次的性能瓶颈,真实的问题的根源并未触达;
  2. 对性能瓶颈点的分析思路不是很清晰。 UI、网络、内存…这么多的性能指标,我到底该关注什么,应该从哪一块儿开始入手?
  3. 对性能优化的工具不了解。 遇到问题后,不清楚该用哪个工具,不知道通过工具得到的指标代表什么。

在大厂的面试中,性能优化也是经常会被问到的题目,用来考察是否有实际的线上问题处理经验。比如:

  1. ui优化除了在布局上处理,还有其他方式没?
  2. 启动优化时除了在application的oncreate的方法中使用异步线程加载部分资源外,还有什么方式?
  3. 为什么jvm设置了标记和回收算法,在标记的同时也做回收不行么?为什么?
  4. 通过jvm的标记回收算法,你能想到这种优化方式能如何使用到自己的项目中,请举例说明
  5. 性能优化的本质是什么?请说一下你的理解!