Andy Stewart
1个月前
今天给你们讲一个低性能芯片极限技术优化的故事 学了这篇推文,即使你不是做低性能芯片的场景也非常有用,操作系统老师傅倾情分享 当时我们面临的问题是这款国产芯片性能非常低,大概只有2000年奔腾处理器的水平,而且没有GPU和OpenGL的支持,内存带宽也非常低,面临的优化挑战非常大。 而现代软件库的开发效率很高,但是库本身的开销也非常大,面临X86这种CPU、GPU、内存带宽、显存带宽都很大的硬件,这些软件库的开销会被硬件的性能忽略掉,感受不出来。 而当年的国产芯片的性能,可以这样说,真实世界的硬件模拟器,任何代码没有极限优化的地方,它就奇慢无比,让你看到幻灯片的动画 我那时心里并不担心,因为我在2005年的时候,用J2ME做游戏,那个手机芯片的性能更弱,内存只有800KB,那个手机都能流畅的跑游戏,国产芯片肯定没问题。 当然,做极限优化肯定不能像原来做游戏那样从底层造图形库,虽然性能可以做到极致,但是长期来可维护性比较差,因为后来的人不懂原创的图形库细节。 遇到极限挑战的时候不要慌张,沉住气,想办法,一定可以解决,下面是我们的武功秘籍,板凳端好了: 1. 首先国产芯片不支持OpenGL,所以最开始的QML全部得用Qt Widget重写了,在有OpenGL显卡的情况下,带OpenGL的图形库要快很多,但是没有OpenGL的芯片运行OpenGL的代码就会非常吃力,因为Linux有Mesa硬件抽象库,当GPU缺乏OpenGL支持的时候,Mesa会自动用CPU去模拟OpenGL调用,这个会极大的增加CPU的负担,也会让系统整体变的很慢 2. 应用程序编写的时候,要仔细分析函数的依赖,在X86芯片上,可以随意写,不用过多考虑函数依赖,因为太快了,但是在国产芯片就要仔细分析函数的调用依赖,把界面显示的代码挪到最前面,先让用户看到界面,然后再是其他的。那时候先要做UX流程分析,代码除了按照底层逻辑顺序走,还要考虑UX流程,这样加载比较慢的代码,可以根据UX流程,一次逐步加载,比如一个控制中心模块,完全加载需要5秒,通过界面流程控制,点击某些地方的时候再执行代码,而不是模块执行就全部执行,这样每个界面可以控制在300~500ms之间展示 3. 函数循环要注意,尽量不要写那种一直等待的函数,用锁或者其他通知机制来替代,这样可以减少很多无谓的性能消耗 4. 其实很多代码慢不在代码本身,而在于加载某些动态库很慢,这种动态库的加载常规优化方法不行,太Hacking,我们就利用了现代CPU都具备的特性,内存缓存。我们会分析整个系统所需的动态库,也会分析用户从登录到进入各个界面的空闲时间。我们做了一个深度的优化,就是利用一切用户发愣的时间,比如输入登录密码的时候,桌面等的时候,不操作的时候......只要用户光标不动一段时间,我们就见缝插针的把动态库内容读取一次到内存。这样的好处是,原来应用程序加载的时候,先要加载动态库3秒,然后绘制界面50ms,总共3秒多的时间,因为动态库已经被预热到内存中去了,再次加载动态库的时候,就不用从磁盘读取到内存,直接去缓存里面调用,这样时间就从3050ms降低到50ms 5. 用户空间到内核空间,很多图形库的代码都在用户态运行,在X86芯片没问题,但是在低性能芯片上,这些用户态的逻辑功能就会变成非常多的syscall,syscall的调用非常多以后,代码就会内核中反复切换,这个切换的代价是非常大的。只要是CPU级别的优化,一定要防止代码在CPU和GPU之间反复搬运、磁盘和内存之间反复搬运、代码在内核态和用户态之间来回切换。所以,我们先上strace等工具,剖析系统调用频繁的代码,把这些代码直接写成内核模块,把原来上百次syscall的逻辑现在换成一次内核层的API,当系统调用从300次降低到一次以后,整个软件的性能就会层质的飞跃 6. 最后就是重写桌面环境后端,原来是Gnome的一部分代码,全部用golang重写后,删掉很多开源社区兼容各种人的代码,精简逻辑,很多都有70%以上的性能提升 好了,喜欢我创业故事的朋友欢迎点赞转发 今天这篇文章这么硬核,老板们不买台懒猫微服支持一下?你的支持是我持续分享硬核技术文章的动力,感谢老板,祝老板们发大财!
背包健客
1个月前
长期睡眠不足,对身体有哪些危害? 《2025 年中国睡眠健康调查报告》显示,中国 18 岁及以上人群的平均入睡时间已推迟到 23 点 15 分,只有不到四成的人能在 23 点前入睡。 全国睡眠障碍人数超过 3 亿,女性比男性更容易失眠;老年人睡眠问题更为普遍,65 岁以上人群中,高达 73.7% 的人睡眠质量较差。年轻人则几乎成了「晚睡主力军」—— 超半数 00 后和近一半 90 后习惯在午夜 12 点之后入睡。 数据显示,每晚 7~8 小时是最理想的睡眠时长;晚上 10 至 11 点之间上床,对心血管最友好;而 12 点之后入睡,心血管疾病风险上升至 27%。 2025 年有关睡眠的研究频频登上《Nature》、《Science》、《Cell》等知名顶刊,科学家们从线粒体、神经环路到代谢、脑清除,一点点揭开了睡眠的奥秘。 熬夜不是「小事」,它会让线粒体出问题、基因表达乱套,还会伤肠道、影响神经健康,甚至关联到生殖系统和慢性疾病,让全身基因和代谢「暴乱」。 熬夜还会「打乱」基因节奏?十年前的研究早有提醒。 其实早在 2013 年,就有研究从基因层面告诉我们熬夜有多伤 。英国萨里大学 Derk-Jan Dijk 教授团队在 PNAS 上发表了个交叉实验的文章,具体内容是:找了 26 名健康成年人,先让大家睡够一周(每晚 8.5 小时),再让大家经历一周睡眠不足(每晚只睡 5.7 小时);之后在大家持续清醒的时候采集血液,做全血转录组分析。 研究结果显示:睡眠不足让 711 个基因的表达发生了显著变化。原本有 1855 个基因会跟着昼夜节律「规律工作」,睡眠不足后只剩 1481 个,而且这些基因的「工作强度」(节律振幅)也普遍降低;更关键的是,对急性睡眠剥夺有反应的基因,从 122 个一下子涨到了 856 个 —— 这些基因大多和生物钟调控、炎症反应、氧化应激、代谢过程有关。这也从分子层面解释了,为什么长期熬夜会让人代谢紊乱、免疫力下降 —— 因为身体里的「基因时钟」被打乱了。 长期睡眠不好,还可能给阿尔茨海默病、帕金森病这些神经退行性疾病埋下隐患。2024 年 4 月,中国南华大学和华中科技大学同济医学院的张稳涛、刘丹、袁梅、朱凌强教授团队,在《Ageing Research Reviews》上发表了一篇综述 ,专门梳理了其中的关联 —— 核心就是线粒体。 他们整合了大量临床前和临床研究发现:睡眠障碍会让线粒体出各种问题,比如形态异常、氧化磷酸化功能下降(没法正常产能量)、活性氧(ROS)越积越多、线粒体 DNA(mtDNA)受损;这些线粒体问题又会进一步加重睡眠障碍,形成恶性循环,最终推动阿尔茨海默病、帕金森病、亨廷顿病、多发性硬化、肌萎缩侧索硬化这些病的发生和发展。 这篇综述的意义在于,它明确了线粒体是连接睡眠障碍和神经退行性疾病的「关键桥梁」—— 也提示我们,或许可以通过改善线粒体功能、调整睡眠,来延缓这些疾病的进展。
安仔
1个月前
最近发现了一个很有意思的现象,越来越多人拿着 AI 写出来的代码找我,问我能不能帮他们把这些东西变成真正能用的产品。 这些人通常不是技术背景,可能是律师、销售或者其他领域的专业人士。他们有好点子,也用上了最新的 AI 工具,甚至真的把一个看起来能跑的 demo 做出来了。 但到了某个节点,他们就卡住了,然后开始满世界找技术合伙人或者 CTO。 这让我想到一个问题:如果 AI 真的能完全取代软件工程师,为什么这些人还需要我们? 我也一直用 AI 辅助写代码,也看了很多别人的演示。慢慢地我意识到一件事:AI 确实会写代码,但它造不出软件。 这两者之间有条很深的鸿沟。 写代码其实不难,解决一个个独立的、定义清晰的小问题,现在的 AI 已经做得很好了。但软件工程难的从来不是这个。 真正的挑战是当你要把 demo 变成产品的时候,你得同时处理几百个这样的小问题,还要让整个系统保持可维护、可扩展。 这就是那些人找上门来的根本原因。他们能用 AI 快速搭出一个功能演示,但要让它变成真正能上线运行的产品,就完全是另一回事了。 我看过他们发来的代码,说实话,所谓的"让它变得可以上线",基本上就是推倒重来的意思。 不是代码写得不对,而是整个结构、集成方式、长期维护的考量,这些东西根本就不在那些代码里。 软件工程师的核心工作其实是管理复杂度。 一个真正的生产系统做的事情,单独拆开看都不复杂,但要同时做好几百件简单的事,还要让它们协同工作,这才是真正考验人的地方。 我也不知道为什么 AI 现在还做不到这一点,可能这就是这个职业的本质吧。但至少现在,这条线还是很清晰的: AI 能帮你写代码,但把代码变成软件,还是得靠人。 工具在进化,但有些能力的门槛,并没有因此降低。
背包健客
1个月前
为了不被裁员,硅谷科技男扎堆做医美 近日,据华尔街日报报道,硅谷正兴起一股出人意料的风潮:越来越多的“科技男”(tech bros)正在大举投身面部整形手术,包括面部拉皮、颈部拉皮、眼睑提升等,以对抗被行业淘汰的隐忧。 在年轻被视为“创新力”的科技行业里,外貌似乎成了职场竞争的一部分。报道指出,不少科技从业者担心自己“看起来太老”从而失去投资人或公司高层的青睐。整形外科医生本·塔雷(Ben Talei)发现,科技行业的男性拉皮手术需求在过去五年里增长了五倍。 据介绍,男性往往更希望拥有自然、低调的外表,更倾向于选择“看不太出来”的方式进行医美:30多岁的男性通常会选择肉毒杆菌注射、微量填充等非手术治疗;到了40多岁,他们开始接受更多的手术治疗,包括所谓的“微整形”。一些人甚至因为服用减肥药(如Ozempic)导致体重骤减、皮肤松弛,从而进一步刺激了整形需求。 《华尔街日报》评论称,这种“男性容貌焦虑”的背后是科技文化对青春和速度的痴迷——“科技是年轻人的游戏”。曾有硅谷投资人直言:“不要雇30岁以上的人。” 旧金山整形外科医生蒂莫西·马滕(Timothy Marten)指出:“从历史上看,如果男性成就斐然,无论长相如何都会受到尊重;而女性,无论多么有成就,都必须拥有光鲜亮丽的外表才能获得赞赏。”如今,男性觉得“光有成就还不够,他们还得打扮得像样。”