阅读视图

发现新文章,点击刷新页面。

2023 年的方方面面

今年偷个懒,找了个模版,主要从以下几个方面回顾过去一年:健康 / 锻炼、工作 / 职业、友情 / 社交、个人生活 / 家庭、学习 / 知识管理、旅游 / 文化、兴趣 / 创造、情绪 / 精神状况、财务状况。

内容更多是自己对于 2023 年的一个记录,算不上总结,文采也不好。不过很多事情,如果你不记录,就慢慢消失了。希望每次我翻看这篇记录的时候,都会感慨 2023 年真是丰富多彩的一年:有难忘的瞬间、有低谷、有朋自远方来、有去看大山大川;也会感慨有些事情做得很糟糕,如此这般其实可以做得更好;也会责备自己的懒惰,明明知道怎么做是对的,却因为懒惰没有去坚持。

各位看官一笑而过即可~

健康 / 锻炼

今年由于公司有骑行活动比赛,持续一整年,再加上成都环城绿道去年贯通,今年一整年的活动就是骑行。年初在闲鱼收了一个美利达瑞克多 4000,准备今年好好骑车。年初的目标是一圈(97km)骑到 3h 内,挑战目标是 2h 50min,没想到最终都达到了(总共骑了 35 圈绿道,最快用时是 2h 47min),如愿以偿在公司内部比赛中拿了第一名。同时把媳妇也带进了坑,一起骑了几圈。

自身叠加的那些 Debuff:哮喘、鼻炎,并没有明显的改善;不过最值得开心的是年底由于肺炎+甲流,住了 4 天院,打了四天吊瓶之后,鼻炎导致的味觉消失也被治好了,同时血氧也恢复到了 96% 以上(之前 always 在 94 以下,给我焦虑得不行)。成都的空气质量真是一言难尽,连华西的医生都直摇头,这一点想移居成都的同学可以慎重考虑一下。

新的一年还是得 骑车+跑步 一起抓,报了个都江堰半马,希望能完赛。减肥依然是主旋律,管住嘴迈开腿很重要,睡前保持饥饿感~

2023 年骑行数据

工作 / 职业

工作方面,今年不算很顺利,做的东西很杂,很多东西也没有最终落地,自己总结了一下,还是因为缺乏规划能力和执行力。不过也算积累了很多知识和做事方法,调研了很多技术方案,与客户也合作完成了几个项目。另外公司内部卧虎藏龙,需要虚心向每一个人学习。

AI 今年算是整了个大新闻,不管是公司还是个人,工作流中都插入了 AI 相关的内容:利用 AI 提升工作效率、创造 AI 相关的工具。不过由于公司性质,AI 还没有产生那种颠覆性的影响,不过我们都知道这一天很快就会来临。

“一种新技术一旦开始流行,你要么坐上压路机,要么成为铺路石。 —— Stewart Brand”

友情 / 社交

今年最重要的一次社交可能就是从成都去深圳参加 深圳 GDG DevFest 技术嘉年华,见到了几位老朋友和各位大佬,吃到了心心念念的砂锅粥和牛肉火锅,跟群里的小伙伴面了基,听了各位 GDE 的主题演讲,可谓是收获满满。

剩下的时间就是跟公司的几个小伙伴骑车了,能让大家周五晚上 12 点还在绿道上疯狂拉扯的,只有骑完之后那一顿火锅/麻辣烫了。@James @Hanzo @天宇 @宣总 @王 @陈大 @祥大 @果哥 @鹏哥 新的一年继续拉扯~

@福滕 和 @小陈 有了小宝宝,@周岩 的新房居然提前交房了(不过依然没有女朋友,狗头~)~,@老崔 跟 @和泉 都在深圳安家了。

交流最多的还是跟微信群里的小伙伴们,基本都是通过微信公众号或者博客添加的,基本都是 Android App 开发者或者国内的系统开发者,5 个群大概 2000 多人吧(虽然 90% 都是资深潜水员)。通过微信群认识了很多业内的大佬,手机圈本身就小,多个朋友多个家(狗头~),同时也感叹真是山外有山,人外有人,啥都别说了学就是了。

最大的感受是:最好跟在同一个频道上的人沟通,会减少很多沟通的成本。

个人生活 / 家庭

小宝宝橘橘快三岁了,橘橘妈也换了新的组(跟我做相同的工作:系统性能优化),一家人开开心心平平安安,就是最大的心愿了。今年由于各种原因,在家里陪宝宝和家人的时间有点少,出游计划也多被搁置。新的一年要提升效率,把时间多用在陪伴家人。

今天读到一个博主的 2023 年终总结,其中一段话让我感触很深,这才是生活的最终目标,不要本末倒置:

我希望多丰富一些体验,做一些没做过的事情,看一些没看过的风景。我希望 有一天可以把时间用在自己身上,而不是用在工作上,不是在那些不重要的人,或者事身上。更具体一点,我希望家人身体健康、平平安安,有爱,有陪伴,我也希望有一天可以走遍中国、走遍世界,看那些没看过的风景,吃那些没吃过的美食。

当我想到这里,我豁然开朗,我知道我终其一生追求的是什么,剩余的,都不重要的。那么,我怎样才可以?我需要时间,我需要钱。

从此开始,我所有的事情都围绕着这个目的展开,只要某件事情,对我的人生最终目的是有推进作用,无论多么艰难,我都必须做,是的,必须,没有任何商量的余地

学习 / 知识管理

今年学习方面一败涂地,英语学习基本上停滞,最后这个月才重新拾起来;技术学习更多停留在读,写和思考总结都比较少;文化学习,比如阅读,书架上的书很多,读完的很少;博客也只更新了几篇文章,费曼学习法那种输出倒逼输入,道理都懂,还是没有克服拖延症。

工作中倒是养成了一个习惯:在公司内部使用 Typora 记录每天的工作内容、技术专项、技术调研、Bug 记录等;新的一年切换到 Loop 之后,我会在上面更详细地记录和思考,以及组内分享,带动组内的技术氛围(今年年初吹下的牛皮年底了最终还是没有实现)。

从我自己的学习经历来看,学习有三大障碍:

  1. 如何获取优秀的输入源:互联网如此发达的年代,如何获取优秀的输入源很重要,这就需要在长期的学习过程中,记录那些优秀的人的博客、优质的 Github 库、高质量的周报、专注在技术输出上的技术团队等(话说我这篇文章:Android 性能优化必知必会 本意也是搜集这些内容的,欢迎大家推荐和自荐)。
  2. 静下心来把一个知识点吃透:短视频类的快消品在争夺人的注意力的同时,也把我们的耐心消耗殆尽,静下心来阅读和思考一篇文章、一个知识点、一本书,都成了一个很不容易的事情。这个只能自己锻炼自己,远离社交网络和短视频,重新夺回注意力,把心思放在真正需要的地方。
  3. 克服拖延症:我们常说,道理都懂,依然过不好,拖延症在里面功不可没。今天看到张朝阳分析治疗拖延症的方法,分析出来与君共勉:拖延症的关键关键就在于拖延本质上是因为不熟悉这件事情想要逃避,因而产生恐惧和焦虑,那战胜它的方法就是在想要拖延时,先在脑子里过一遍要做的事情,梳理好脉络,构想出细节,让自己的神经元兴奋,立即行动。这样可以战胜拖延,并感受到正反馈

年初看了李自然的一个视频:人生如逆旅,我亦是行人,视频主要是讲了下面几个点,当时感触很深,也分享给大家:【李自然说】人生如逆旅,我亦是行人

  1. 不给自己设限,能快速融入到更有潜力的行业
  2. 向顶级的人拼命地学习
  3. 拼命地打开自己的视野和格局
  4. 拥抱变化,甚至主动去求变
  5. 一直坚持做,就会有一个长期的口碑
  6. 提高容错率

旅游 / 文化

今年去了四个地方:四姑娘山,厦门,烟台+威海,乐山。

  1. 厦门:团队旅游目的地,看海,吃沙茶面,吃姜母鸭,不得不说厦门这天气太让人羡慕了,环海路也可以骑车,市内还有步道(可惜没去)。
  2. 烟台+威海:烟台+威海,先去参加 @小婉 的婚礼,然后回母校去看看见了几位老师和老同学,韩餐和海鲜都吃到了,环海路依然风景漂亮,学校后面的沙滩落日很美~
  3. 四姑娘山:开了一天车去到处于川西的四姑娘山,路上要经过海拔 4800 的垭口,宝宝和媳妇高反,没有怎么玩,很快就回来了。我们去的那天晚上下了雪,第二天到了景区后拍照很漂亮,我录了视频在这里:https://www.bilibili.com/video/BV1H84y1Q7oM ,漂亮是真漂亮,值得再去一趟~
  4. 乐山:看乐山大佛和吃小吃~甜皮鸭和炸串真好吃~

带着宝宝出去玩虽然很折腾,但是还是很值的,宝宝在一路上会认识很多新的东西,交新的朋友,吃到新的食物。2024 依然会继续带着宝宝折腾~

兴趣 / 创造

终于来到轻松一点的环节了,今年主要兴趣是骑车,购置了一台大疆 Action4 来拍骑车时候的视频,要技术没有,都是一镜到底,创造力这玩意是真得有天赋才行。

情绪 / 精神状况

自我感觉良好,除了稍微有一些焦虑。自我感觉良好很大程度上得益于家庭的支持,有爸妈在家帮忙看宝宝,我和媳妇双 it,很多决定媳妇都会坚定支持。成都美食比较多,比较杂,想吃哪种都可以吃到,玩的地方也比较多,川西、古镇、都江堰青城山,去重庆也不远;天府新区高新区这边也不怎么排外,呆着很舒服(除了雾霾,这个真的是负分)

2024 继续保持吧,心态要好,睡眠要好。

财务状况

房贷还剩余比较多,每个月工资大半都交给银行了,除了夫妻两个的工资基本没有其他的收入,这也是我目前比较焦虑的点,一旦遇到被辞退或者其他变故,周转就会有困难。所以最终目标还是要管好自己的钱袋子,控制花销。看了一个说法,分别是穷人、中产阶级、富人的资产负债情况:

  • 穷人疲于奔命,收入被衣食住行消耗殆尽。
  • 中产阶级深陷「老鼠赛跑」的陷进,为各种账单、贷款奋斗半辈子。
  • 富人买入并持有优质资产,形成「钱 → 资产 → 钱」的良性循环。

所以最终还是要持有 优质资产,我理解这里的优质资产可以是房产,也可以是知识。结合个人的情况,我思索再三,又重新开启了 知识星球,简介在这里 The Performance 知识星球简介,我并没有做宣传,只在博客中有介绍。我觉得目前最有效的两种学习方法:费曼学习法和公开学习法,知识星球都可以满足我,我会把日常的一些思考、案例、学习的进度、工具等分享到星球上;如果在这个过程中,有些知识能帮助到你,那么我觉得就值了。

最后三项

最骄傲的成就

今年可能最值得拿出来说的就是去了 电子科技大学 ,给研究生们上了三天的课,蹭的当然是公司跟企业合作这个便利,不过过程还是很值得一说的:从接到这个任务,到开始备课(其实就是学习 @鹏哥 去年准备的 PPT),再到每个知识点的学习,再到真正去讲课,还是充满了挑战的,毕竟是第一次,还好没有翻车。

今年好像还是我,这次就没那么紧张了,不过去年的内容要好好更新一下,讲课的方式需要再优化优化,知识点该深入的还是要继续深入,毕竟 Android 从最上层到最底层都讲清楚也不是那么容易的.

最大的挑战

工作方面的就不说了,除了工作方面,最大的挑战应该还是英语口语了,今年有好几次需要用到英语口语的时候,结果都不是那么好,这也刺激我要好好学英语。这个感觉要放到 2024 年最重要的 Task 里面,目前也有一些小的规划在实施中。

明年的目标和愿望

  1. 多陪陪家人,做一些之前没有做过的事情,去一些之前没有去过的地方。
  2. 至少做一次 Google Dev Fest 级别的公开分享
  3. 出一次国
  4. 坚持把知识星球做大做强
  5. 坚持锻炼身体,一次马拉松完赛
  6. 多看书
  7. 坚持每 2 周更新博客,提早把 Perfetto 系列写完
  8. 录视频

文笔有限,借用 aoxiang 的话来做个结尾吧:

很感谢对我的认可,你花时间看到这里,我很希望这篇文章对你有价值。同时,我也很希望你能想清楚「你想要过什么样的人生」,当你有了这个判定标准,你任何一个抉择,都会无比轻松。

关于我 && 博客

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 博主个人介绍 :里面有个人的微信和微信群链接。
  2. 本博客内容导航 :个人博客内容的一个导航。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. Android性能优化知识星球 : 欢迎加入,多谢支持~

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

关于 The Android Performance 知识星球介绍

目前星球为付费模式,星球收入主要是是赚个博客的服务器费用以及给家里的豆子(猫)买个猫粮,同时也是我更新博客的动力。如果觉得内容还不错,就加入星球支持一波吧~ 非常感谢~

知识星球名为 The Performance,一个分享 Android 开发领域性能优化相关的圈子,主理人是博主自己,国内一线手机厂商性能优化方面的一线开发者,有多年性能相关领域的知识积累和案例分析经验,可以提供性能、功耗分析知识的一站式服务,涵盖了基础、方法论、工具使用和最宝贵的案例分析。

随着 Android 的发展,性能优化成了所有 Android 手机厂商和 App 厂商的重中之重。然而性能优化又是一个非常宽泛的话题,涉及到的知识非常多,从底层 Kernel 到 Framework 再到 App,每一个环节都有大量的知识点需要了解。所以笔者团队建立了这个专门分享和讨论 Android Performance 相关的技术圈:提供高质量的技术分享和技术讨论,提供系统性的 Android 性能优化相关知识的学习。

所有加入星球的同学,都可以畅所欲言,分享知识和案例,提问或者解答他人的问题,以问题分析带动学习,共同学习,共同进步,所有人都可以分享和讨论下面话题相关的内容,或者享受相关的权益。

目前星球的内容规划如下(两个 ## 之间的是标签,相关的话题都会打上对应的标签,方便大家点击感兴趣的标签查看对应的知识),由于改为个人经营,精力有限,划线部分是暂时删除。

  • Trace 分析 - 加入星球后,可以提供 1v1 的 Trace 教学和分析(Systrace、Perfetto、SimplePerf 等,需要提前预约),另外也会提供各种 Trace 相关的案例分析。
  • #The Performance# — 可以提早阅读「Android 性能优化 - 系统性课程」的电子书,每周会放出已经写好的章节。「Android 性能优化 - 系统性课程」 是我们规划的一本讲 Android 性能优化的电子书,目前开发者社区有相当多高质量的性能优化理论知识和实践文章和开源库,但是目前市面上缺乏一个完整的系统性的包含了性能优化原理工具实践等内容面向初级开发中和中级开发者面向 App 开发者和系统开发者,且持续更新的 Android 性能优化工具书。书的大纲 (暂定) 我们已经基本上列好了,预计会花费一年左右的时间来完成,在星球中会放出写好的章节,让大家提前看到,也欢迎大家一起进行 Review
  • #性能工具# — 分享 Android 开发中使用到的性能分析工具以及其使用方法,同时也提供 1V1 的 Systrace、Perfetto 等性能工具的视频指导。性能工具的使用,最好还是以视频的方式展示会直观很多,文章是静态的,很多地方比较难讲清楚,1V1 的视频会议指导也算是一个学习的方法。
  • #案例分析# — 典型案例分析思路总结、球友提供的案例分析与讨论。案例分析是学习的一个很重要的途径,阅读大量的实际性能案例对以后自己分析和解决性能问题是非常有帮助的,同时也欢迎大家提供案例和解决方法,怕泄露信息的话,我们会对关键信息进行打码。
  • #经典解读# — 经典方案、课程重读,例如优秀的三方库解析、Android 开发高手课重读等。比如可以对方案进行深度的剖析,横向对比等;对 Android 开发高手课进行重读和查漏补缺。
  • #知识分享# — 优秀文章、博客、工具分享。业界有很大大牛的博客、经过实际业务考验的开源方案、各种性能工具等,我们会寻找这些优秀的内容,分享给大家。
  • #知识沉淀# — 微信群聊精华、微信问答、博客留言解答等。
  • #性能面试# — Android 性能相关的面试题搜集和解答,也算是刚需了吧。
  • #编程语言# — 编程语言相关的使用技巧分享。
  • #效能提升# — 效能提升分享,包括开发者开发效能、工作效能提升方法、工程效率、工具推荐等,磨刀不误砍柴工嘛。
  • #行业动态# — 性能相关新技术第一时间解读报告,包括但不限于下面的内容。
    • 行业峰会、学术峰会新思路解读报告
    • 论文、行业、书籍介绍、视频
    • Android 大版本性能相关介绍
    • Android 新硬件性能相关内容介绍
    • Android 性能相关开源项目解读
  • #大咖分享# — 每月定期邀请行业大咖进行经验分享、案例分析。
  • #工作内推# — 各大厂商内推工作机会介绍。

付费星球二维码

微信扫码加入即可(iOS 用户最好用微信扫码)
付费知识星球

免费星球二维码

当然星球还有一个免费的版本,定位是知识分享,感兴趣的也可以加入

image-20231126142045297

微信公众号

当然也欢迎关注微信公众号~

微信扫一扫

微信群

新的微信交流群,没有加之前微信群都可以加这个,方便平时随时沟通和大家相互之间讨论

微信群旨在讨论 Android 及其相关的技术话题,包括但不限于 Android 性能优化课题(响应速度、流畅度、ANR、Crash、内存、耗电、性能监控等)Android App 开发、Framework 开发、Linux、大前端、面试分享、技术招聘等话题

鉴于群里的各位大佬们时间都很宝贵,大家聊天的内容尽量与上面的主题相关,禁止吹水、装机、购机、手机厂商优劣讨论……否则群会被贴上水群的标签,希望大家共同维护群氛围

另外还有 闲聊吹水群、跑步群、读书群、GPT 群,里面大家就随意发挥了,可以私我拉进去

如果群满 200 或者二维码失效,可以加我微信拉各位进去(553000664)

个人其他信息

  1. 博客地址:https://www.androidperformance.com/
  2. 免费知识星球:https://t.zsxq.com/ZZ337Am
  3. 付费知识星球 :https://t.zsxq.com/Fuvvf6y
  4. 知乎地址:https://www.zhihu.com/people/gracker  
  5. 即刻:https://okjk.co/pJbjFa
  6. Android Weekly :https://androidweekly.zhubai.love/
  7. 微信公众号:AndroidPerformance
  8. 掘金 :https://juejin.cn/user/1816846860560749

The Performance 星球茶话会 - 第一期

2022.3.25 ,周五晚上九点,The Performance 知识星球(付费版本)举办了第一次线上茶话会,3 位星球主理人 + 5 位星球嘉宾,50 多位球友参加,非常感谢各位!

第一次茶话会没有预设主题,预计 1 个小时就可以结束,结果聊了 2 个半小时,光是主理人和嘉宾的个人介绍就花了一个小时。平时大家在群里和星球里交流很多,但是通过语音在线交流还是第一次,再者大家的公司基本上涵盖了 Android 上下游:既有 App 大厂的大佬,也有一线手机厂商的系统大咖,也有芯片公司和造车新势力的资深专家。所以在每个人自我介绍的时候,会聊一些公司相关的东西,再发散一下,其他人再问一些问题,时间就过去了。

后续会不定期举办星球茶话会,主题会更加明确,也会邀请更多嘉宾来一起聊聊,不局限于技术,欢迎大家多多参与和提问。考虑到隐私问题,

本次茶话会没有录屏,下面的内容也不会涉及到各位的隐私,文字稿是根据聊天内容部分还原的。

关于职业发展

领域的应届生真的被庞大的知识体系压的有点喘不过气

  1. 改变心态:学校跟专业领域是不一样的。学校是有课本,学完一门课就算结业了。从事专业事项的时候,两个不一样,而且很不一样。
  2. 从手边的问题开始学习:把工作中遇到的不懂的问题弄懂,做到 100 分甚至 110 分,平时储备自己不具备的知识。对于新人来说,把工作做好有很多好处。一是增加经验,二是获得更多学习与接触新东西的机会。切忌主业没做好,做另外一个方向,除非你确定目前的主业不适合自己干。
  3. 面向解决问题编程:工作中很重要的一个技能就是解决问题,老板发钱就是让你解决问题的。掌握好度,以经济学来说就是控制好边际收益,投入与产出应最大化是比较理想的情况。
  4. 掌握学习的方法和技巧:爬山的时候直接看山顶,更让人容易放弃。更好的方式是,头朝下一步一步走,偶尔看看地图是否走错,或者走着走着发现更适合自己的路。

刚从 App 开发转到安卓系统性能优化的小白

  1. 跟踪公司的项目走:如果有人带那就好,跟着公司项目走,这是最快的。
  2. 自驱力:如果愿意平时学习,会的多了争取到的机会也多一些。还是那个观点,对于新人来说,把手头工作做好的前提下努力学习跟主业相关的新知识。当你做手头工作的时候你的主观能动性会变强、周边同事与领导也会支持你,而且给你的奖励也是不错的。
  3. 不要给自己设限:知识都是融会贯通的,不要把自己局限在自己的一亩三分地,尤其是做性能的,App、Framework、Kernel、Hardware 这些,都可以去看去学习。努力使自己处于「知道自己不知道」的状态,最糟糕的是「不知道自己不知道」还觉得优化没啥可做,从经验与常识来看,这都是错误的。
  4. 知识体系化:性能优化涉及到的知识非常广,平时分析和解决问题的时候,要多看代码、多记录、总结和归纳,把学到的知识体系化,不要想着一蹴而就,要厚积薄发。
  5. 利用好现有的资源:跟着星球内容、博客内容、大厂的优秀文章这些学习,多提问,不管有多初级。

关于提问

  1. 星球是一个很好的平台,很多让你困惑的问题别人也经历过。但是你要利用好他的前提是能问出准确的问题。如果问问题,是个技术活。
  2. 可以参考这篇文章:到底如何提问?https://mp.weixin.qq.com/s/l_Iz5pZ5yXhBAoPzNi4m-Q
    • 决定探讨、思考、回答的质量和效率。「提出好的问题已经解决了问题的一半」,说得没什么科学依据,但也不妨理解好问题的重要性。
    • 决定做事方向。曾经有人问爱因斯坦:「如果您有一个小时来拯救世界,您将如何使用?」他回答说:「我将花 55 分钟确定问题,然后花 5 分钟解决问题。」
    • 提问是认识世界和人的桥梁。好问题能激发优秀者的教学欲望,将宝贵信息倾囊相授。
    • 其实可以从一个人提问的能力来判断其段位。就像杨澜说的,「一个人的提问力,彰显在与外界互动质量的高低。」
  3. 尽量使用 Google 来搜索答案,百度和 Google 的答案差异很大。答案不区分中文资料和英文资料,能解决疑惑就是好资料,值得保存和分享(到星球或者星球微信群)。
  4. 需要提供日志分析问题时
    • 如果涉及到敏感内容,比如 Systrace 中涉及到敏感信息,可以使用文本软件,比如 VSCode 打开 Systrace 文件,一键将敏感信息(比如 package name)替换。
    • Log 中如果涉密,尽量还是不要发出来。
    • 如果是单独发给三个主理人,那么不脱敏也无所谓,我们承诺不会公开这些内容,只会做分析使用。
  5. 一个好的闭环:大家伙提问 -> 一起分析原因 -> 尝试各种方法解决 -> 通过数据验证有效果 -> 把结果分享给大家。

关于面试

有时候需要出去跟友商、新赛道的人沟通下,可以看看外部环境都在发生怎样的变化。首要目的不是为了跳槽(如果有好机会,跳也无妨),而是为了让自己在人力资源市场上有比较高的竞争力。

这里首先要区分职业与工作的区别。我是软件工程师,这是我的职业。我在 A 工作任职负责某个模块,这是我的工作。这两个是不一样的,如果你能把两者区分开(前提是能区分得开),那在择业、面对公司变化的时候都能从容应对。

最理想情况下,应该追求自己喜欢的职业,因为它伴随你绝大部分时间,如果这个职业本身不让你感到兴奋,你不太可能做出比较好的成绩,进而无法获得比较高的回报。

遇到好的工作,那就看天意了。这很复杂,与很多很多因素有关系。当你遇到面试不顺利,只能说这个工作不适合你,没有缘分,无法进一步说明更多的事情。

关于公司环境

不同的公司在不同的行业赛道、竞争格局上所采用的策略是不一样的。微观上,你的部门领导的风格以及同事们的结构,都影响到了你具体做事的环境。不同环境所追求的「回报最优值」是不一样的。

有的是需要你做到行业 5%,得到组织认可。有的是能把问题搞定就行而不关心如何搞定的,得到组织认可。

要么直接硬刚这种环境,按照你认为对的方式行事,要么就适应它。无论选择哪种,要知道局面是什么局面,而不是遇到与自己想象不一样的时候要么怀疑自己,要么以为这个世界就是这样。

关于学习新技术

对于优化业务来说,它是有底层逻辑可寻的。而这些底层逻辑遇到不同的技术栈、不同的局面的时候会藏的比较深。平时学习中,要努力找出这种底层不变的东西,将可变的东西套进去,一是增强对新技术的判断力,二是可以举一反三提出更进一步的优化方案。

不要在新技术的表面上游荡,一是自己觉得累,二是这没啥意义。

优化做到一定深度,肯定是往底层走。比如编译器、硬件特性,甚至硬件整合。因为这些东西直接决定了程序的速度,所以是绕不开的一道坎。

关于 GPU

  • 讲 GPU 架构相关:下面是一些 PDF,各时代、各厂商的 GPU 架构都不一样,当然也有相似之处,建议都看看。初学 GPU 架构的人会遇到很多专业名词,遇到了不懂的词要去搜索,然后弄懂,会有文章介绍,看完后会更加拓展你的视野,发现新的一片天地。
    1. GPU Architectures
    2. Introdution to GPU architecture
    3. Introduction to Modern GPU Architecture
    4. Graphics and Computing GPUs
    5. GPU Architecture and Function
  • 讲 GPU 架构相关的书,几乎没啥书
    • Mobile 3D Graphics SoC From Algorithm to Chip 这本书网上只有付费的,免费的 PDF 可以在我们星球上搜。
  • 讲 GPU 相关的博客,很多我找不到了,就列举了一些我能找到的
    1. 深入 GPU 硬件架构及运行机制 - 0 向往 0 - 博客园,这个论坛讲的内容比较成体系,作者面向的读者应该是游戏开发的人群,不过学习图形的人都可以看看。
    2. Tile Based 架构下的性能调校,关于 Tile base 如果性能调优。 厂商一般都没有 OpenGL 实现库源码,如果又对源码感兴趣,可以下载下面两个库代码看
    3. 谷歌的 swiftshader,在谷歌 android 源码根目录 external/swiftshader 下,一个完全用 CPU 实现的 OpenGL 3.0 的版本,代码可读性非常高,可以帮助大家理解 OpenGL 的各种原如:状态机、资源管理、API 实现等。
    4. Mesa 3D,一个开源的图形驱动库,网上有一些文档介绍可以搜搜。
  • 如果没有图形开发经验,想学习 Vulkan 开发个人推荐先学习 OpenGL:因为 GPU 底层原理和机制都一样,学习了 OpenGL 入门 Vulkan 会更加简单,因为 Vulkan API 更加底层如果直接学习 Vulkan 估计会比较困难。如果有了 OpenGL 开发基础,想学 Vulkan,我分享一下我的学习之路(可能不是最优的,大家参考一下即可):
    1. Vulkan Tutoria l 学习最简单的 Vulkan 例子,如:如何绘制一个三角形。
    2. 《Vulkan Programming Guide》By Graham Sellers and John Kessenich,网上有 PDF,也有中文版,这本是官方出版的书,一本没有感情介绍 Vulkan API 的书,比较赤裸裸的介绍 API,几乎不讲原理,我学习它的目的是要熟悉 Vulkan 的 API。
    3. 《Vulkan 学习指南》作者帕敏德·辛格,也是一本入门的书,我是微信读书看的中文版,不过翻译得很一般,能看英文的尽量看原版,这本书比较注重渲染的流程和原理的讲解,不过 API 的介绍不全,需要配合《Vulkan Programming Guide》一起看。
    4. 看了入门的书,那就要动手写代码了,所以我推荐大家看一本用 Vulkan 来介绍游戏开发的书,我个人看的吴亚峰的《Vulkan 开发实践指南》,这本书个人觉得写的很一般,我看它的主要原因是,我大学的时候看过这本书 OpenGL 版本的,这本书基本就是 OpenGL 版本直译过来,讲的比较冰冷。
  • 为什么都在推 Vulkan,Vulkan 比 OpenGL 有什么优势?可以看
    • 苹果开发官网的Bringing OpenGL Apps to Metal视频,Metal 和 Vulkan API 基本一样,目的也是一样,都是来自 AMD 的 Mantle,把视频中 Metal 当做 Vulkan 就可以了
    • 上面书中《Vulkan 学习指南》作者帕敏德·辛格,开编就有讲 OpenGL 和 Vulkan 差异

最后就是:学习图形开发的人一定要沉得住气耐得住寂寞,多看书多练习,不然很难学得精通,这是一个长期的过程,不是看几本书就能精通的。学习 GPU 架构的人,国内基本没有一家像样的 GPU 供应商,GPU 方面资料会很少,所以一定要多到外网去收集学习资料,可以多用 GPU 调试工具调试去分析应用程序,去了解 GPU 内部的 Counters,如 DS5 Streamline、Snapdragon Profiler 等,另外在没有很全面的学习资料的前提下,去学习一门更加底层的图形开发技术对学习和了解 GPU 架构也很重要,如 Vulkan,这会有助于自顶而下的去了解 GPU 内部的工作原理

关于提到的文章、书

文章:十年创业者万字长文分享招人

文章地址:https://presence.feishu.cn/docs/doccn71hTTKbaRGF8RvD2XzLJEK,里面列举了作者总结的 S、A、B、C 类人才,大家可以对照一下自己做事的方式,看看更高级别的人才是怎么做事的

书籍:程序员的自我修养 by 俞甲子 / 石凡 / 潘爱民

豆瓣地址:https://book.douban.com/subject/3652388/

这本书主要介绍系统软件的运行机制和原理,涉及在 Windows 和 Linux 两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。每个技术专题都配备了大量图、表和代码实例,力求将复杂的机制以简洁的形式表达出来。本书最后还提供了一个小巧且跨平台的 C/C++运行库 MiniCRT,综合展示了与运行库相关的各种技术。

对装载、链接和库进行了深入浅出的剖析,并且辅以大量的例子和图表,可以作为计算机软件专业和其他相关专业大学本科高年级学生深入学习系统软件的参考书。同时,还可作为各行业从事软件开发的工程师、研究人员以及其他对系统软件实现机制和技术感兴趣者的自学教材。

书籍:软件调试(第 2 版) by 张银奎

本书堪称是软件调试的“百科全书”。作者围绕软件调试的“生态”系统(ecosystem)、异常(exception)和调试器 3 条主线,介绍软件调试的相关原理和机制,探讨可调试性(debuggability)的内涵、意义以及实现软件可调试性的原则和方法,总结软件调试的方法和技巧。

卷 1:硬件基础

豆瓣地址:https://book.douban.com/subject/30379453/

第 1 卷主要围绕硬件技术展开介绍。全书分为 4 篇,共 16 章。第一篇“绪论”(第 1 章),介绍了软件调试的概念、基本过程、分类和简要历史,并综述了本书后面将详细介绍的主要调试技术。第二篇“CPU 及其调试设施”(第 2 ~ 7 章),以英特尔和 ARM 架构的 CPU 为例系统描述了 CPU 的调试支持。第三篇“GPU 及其调试设施”(第 8 ~ 14 章),深入探讨了 Nvidia、AMD、英特尔、ARM 和 Imagination 这五大厂商的 GPU。第四篇“可调试性”(第 15 ~ 16 章),介绍了提高软件可调试性的意义、基本原则、实例和需要注意的问题,并讨论了如何在软件开发实践中实现可调试性。

本书理论与实践紧密结合,既涵盖了相关的技术背景知识,又针对大量具有代表性和普遍意义的技术细节进行了讨论,是学习软件调试技术的宝贵资料。本书适合所有从事软件开发工作的读者阅读,特别适合从事软件开发、测试、支持的技术人员,从事反病毒、网络安全、版权保护等工作的技术人员,以及高等院校相关专业的教师和学生学习参考。

卷 2:Windows 平台调试

书籍信息:https://book.douban.com/subject/35233332/

第 2 卷分为 5 篇,共 30 章,主要围绕 Windows 系统展开介绍。第一篇(第 1- 4 章)介绍 Windows 系统简史、进程和线程、架构和系统部件,以及 Windows 系统的启动过程,既从空间角度讲述 Windows 的软件世界,也从时间角度描述 Windows 世界的搭建过程。第二篇(第 5-8 章)描述特殊的过程调用、垫片、托管世界和 Linux 子系统。第三篇(第 9-19 章)深入探讨用户态调试模型、用户态调试过程、中断和异常管理、未处理异常和 JIT 调试、硬错误和蓝屏、错误报告、日志、事件追踪、WHEA、内核调试引擎和验证机制。第四篇(第 20-25 章)从编译和编译期检查、运行时库和运行期检查、栈和函数调用、堆和堆检查、异常处理代码的编译、调试符号等方面概括编译器的调试支持。第五篇(第 26-30 章)首先纵览调试器的发展历史、工作模型和经典架构,然后分别讨论集成在 Visual Studio 和 Visual Studio(VS)Code 中的调试器,最后深度解析 WinDBG 调试器的历史、结构和用法。

本书理论与实践结合,不仅涵盖了相关的技术背景知识,还深入研讨了大量具有代表性的技术细节,是学习软件调试技术的珍贵资料。

这本书应当还有卷 3,此卷里会讲基于 Linux 平台的调试方法

关于 The Performance 知识星球

The Performance 是一个分享 Android 开发领域性能优化相关的圈子,主理人是三个国内一线手机厂商性能优化方面的一线开发者,有多年性能相关领域的知识积累和案例分析经验,可以提供性能、功耗分析知识的一站式服务,涵盖了基础、方法论、工具使用和最宝贵的案例分析

星球 免费版,定位是知识分享和交流,也可以微信扫码加入

微信扫一扫

关于我 && 博客

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 博主个人介绍 :里面有个人的微信和微信群链接。
  2. 本博客内容导航 :个人博客内容的一个导航。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. Android性能优化知识星球 : 欢迎加入,多谢支持~

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

❌