首页 > 传媒 > 关键词 > 环信最新资讯 > 正文

环信CTO:“过早的性能优化是魔鬼”

2021-04-20 10:09 · 稿源:站长之家用户

以此文致敬“ Zen and the Art of Motorcycle Maintenance — An Inquiry into Values ”(中文名:禅与摩托车维修艺术,另译名:万里任禅游)一书。“擦车”一词,纯属戏谑,只因”cache”一词的汉语拼音和“擦车”一毛一样,又意附了原作“摩托车”的主题,实则和擦车没有任何关系,权当是标题党的又一次苦心积虑吧。

禅与摩托车维修艺术 – 经典闪回

9a766193e519220c94538aceade5ff72.jpg

这本书写于上个世纪70 年代,经历126 次被各大出版社拒绝后,由一个不抱任何盈利念头的编辑最终付梓出版,成为那个时代最为畅销的书籍:

累计销量已经超过1000 万册,相信这一数据会持续攀升

《吉尼斯世界纪录》称它是”世界上被拒稿次数最多的畅销书”

《时代》周刊评选20 世纪十本最有影响力的书之一

而最好的名人推介可能就算下面这个了(印在封面上以吸引读者的目光):

我因为写了一部人们把它和 《禅与摩托车维修艺术》相比较的书而感到甚受恭维。我希望拙作(《时间简史》)和本书一样使人们觉得,他们不必自处于伟大的智慧及哲学的问题之外。

—- 著名物理学家 史蒂芬•霍金

这是一部“哲学小说”,书中内容由交替穿插的两种文体组成,一度让读者莫名其妙不知身在何处:一半是游记,记录了自己和儿子历经17 天的摩托车之旅,横穿美国大陆从明尼苏达州直到加州海岸的行程;另一半则是哲学讨论,作者从旁观者的角度介绍曾经的自己(Phaedrus,斐德洛,精神分裂患者)不断苦苦思索,最终参透“良质”(不是良知,英文为“quality/good”)才是一切的源头和本质。

这绝对不是一本易读的书,书中的某些段落甚至是一句话,都需要我们反复体会其中深意。全书共分为四个部分,由浅入深,从表象到形而上学层层推进,带领读者渐次攀登到思想山峰的最高处。书中的后半部分逐渐趋向于形而上学的讨论,要真正的理解还需要做更多的功课;而前半部分仅涉及表象和实用主义层面的讨论,对于从事技术工作的人们却有着直接的启发。本文的下半部分就以此为参照,谈谈我们应该如何在技术挑战的过程中更加“投入”,达到“心流”的状态。

对 Cache 的执念

《禅与摩托车维修艺术》通过作者自己亲身的经历,给我们展示了一组“粗鲁”、“轻率”、边听音乐边工作的不合格的摩托车维修技师的形象,他们带给了作者一场真正的噩梦。也是因为这不好的维修体验,让作者痛定思痛,再不将自己心爱的摩托交给别人维修,而是通过不断钻研摩托车的表象构造和运行机理,从摩托车维修手册到各种零配件一应俱全的配齐,在何种恶劣的条件下和突发情况下都能游刃有余的处理事件,都不会“卡住”。

作为一个软件工程师,你究竟多“关心”你自己的代码,又投入了多少的“热情”在你日常的设计和编码工作中呢?当你认同“一个人应该关心并全情投入自己热爱的工作”时,又该如何持续的保持这份热情呢?相信每一个和我类似的“码农”读完这本书后,都会情不自禁的问自己这样的问题。即使暂时还搞不懂“良质就是佛陀”这形而上学的终极思辨。

如果一个人在工作的时候,能够看到良质,而且感觉到它的存在,那么他就是一个关心工作的人。如果一个人关心自己所看到的和手中所做的,那么他一定有某些良质的特性。

P311

前些日子做了一些系统本地缓存的优化工作,比起一些新的产品线拓展来说,并不见得有多少创造性,甚至有人会觉得不就是在既有系统上做的一些小小改动,无足轻重。但恰恰从其中让我体会到:如果你“关心”自己的工作,其实无时无刻都会被“良质”驱使,不断去专注的思考和践行,也能达到知微见著的哲学体验。

重新让思考进入到计算机的维度

缓存是互联网应用中最常见的组件,几乎每一个从业人员都耳熟能详。当大家谈论起缓存时,也大都会提到 Redis,它已经成为缓存领域的通用组件,你几乎可以在绝大多数的互联网产品架构设计中看到它的身影。于是,Cache=Redis 的烙印深深植入了每一个程序员的心里,大家也理所当然的认为Redis是解决缓存问题的终极方案,放一个 Redis 在系统架构中甚至成了一个下意识的动作。

当经历过几年的迭代,我们的系统架构中Redis也成为了最重要的信息存储组件,它的价值和系统的成本自然也成比例的与日俱增。可是,当我们把目光转向性能提升的时候,才发现Redis竟然成了性能的瓶颈,不得不要继续深入到缓存的密林深处,继续挖掘我们可以利用的机器资源来实现更高效的数据分布、更快的数据访问,进而提升系统的吞吐量和并发数。在这个过程中,你的思考方式需要逐渐从人的直觉体验转化为计算机的直觉体验,那股“心流”会让你与机器混为一体,你突然发现自己的思考时空尺度进入了一个更微小和高频的世界。

先来看下这个 Latency Numbers Every Programmer Should Know,你能够猜到一个 Redis 的跨网络查询调用和本地缓存的延迟差距吗?目前常见云服务商同一个机房中两个虚拟机之间的延迟为1ms 左右,假设 Redis 内存访问和本地缓存的内存访问时间一致,均在100ns 数量级,因此两者间的差距主要在于网络延迟,也就是1ms(这个是理论简化数字,实际上我们观测到的 Redis缓存访问时延在5ms左右),因此两者之间的数量级差异=1ms/100ns=1*1000*1000ns/100ns=10000。如果你以人自身的绝对体验尺度来衡量这1ms,也许它短的不值一提,毕竟人的一次眨眼都要花掉100ms+的时间。

但当我们将两者的相对差异放大到人的体验时间尺度后,就不显得那么不值一提了:

e0e8a6de9afb0b79cc379a6fbd48da00.jpg

4 分钟:11 天!这意味着如果你把机器的每次执行逻辑当成人的一秒,那通过本地缓存访问只需要 4 分钟完成的事情,通过 Redis 缓存访问需要10 个工作日!要注意的是,这只是一次缓存访问带来的时间差异,如果你的缓存访问代码不断的被调用,那产生的时间差异真的会变成天壤之别(以人的时空尺度体验为参考):假设连续调用1000 次,那相当于2 个月:30 年的差异。

缓存技术的本质

除了时间尺度上的比较,缓存技术真正的挑战在于如何在时间、空间、成本之间进行仔细的规划,达成全局最优化的目标。“事难两全”:在计算机架构中,越是高速的数据存储介质(如 CPU L1、L2 Cache),单位成本越是高;而计算设备一定要在总经济成本的约束下来进行设计,因此整个计算机硬件配置中高速存储都是稀缺的,而海量数据的存储介质一定是访问速度最慢的。

如果把缓存的合理使用当成一个动态规划的问题,系统应该存在一定限制约束条件和特定计算问题前提下的最优解。如何让缓存系统动态的适应不同计算问题,使得数据能够在不同层级缓存中(L1,L2,Memory,Network,Disk,etc.)根据优化目标的要求进行自由的流动、重新部署是缓存架构的终极挑战。

特别的,数据在不同缓存介质中的这种流动,是应该基于数据本身的大小、被使用的频度、利用价值的存在周期等参数/反馈来进行动态计算的。理想中的(动态)缓存管理系统应该能够自适应,根据起始输入参数/数据集不断进行反馈调整,最终达到动态的最优分布。

近年来开始有更多的关于Dynamic Cache Management1, 2 的讨论,后续我们也将持续关注相关理论和技术的进展。

在机器思维和人类思维间切换

软件工程师始终是在以计算机思维考虑问题。但是由于我们开发的系统基本是为人服务的,随着你工作经验的积累,越来越多的业务、产品层面的思考会不自觉的将你重新拉回到客户/用户的思考维度,这会让你的架构设计、代码实现不自觉的又回升到人普遍感知的时空尺度。回看过去几十年软件设计的发展过程,面向对象(Object Oriented Design)、软件重用(Software Reuse)、领域规范语言(Domain Specific Language)、微服务设计(Micro-service Design)等等,都是在用业务、场景来引导我们的编码,我们早已习惯了用人类可读(Human Readable)的逻辑、语言来指导软件的设计和开发工作。

这一切都无可厚非,软件、互联网行业多年以来的蓬勃发展也证明了它的方向大致正确。软件行业会继续沿着“机器计算为人类服务”的方向不断演进变化。近年来风头正劲的“低代码”平台、AI Code to Coding等技术也在试图抹平人类和机器思维之间的鸿沟,让普通人也可以通过最善于流畅表达的人类思维模式来指导计算机满足自己的需求。另外,“过早的性能优化是魔鬼”这句业内格言也告诉我们,优先采用人类的思维,基于业务的结构来指导软件的编写是大的原则。

当我们为了提升软件系统的性能时,或靠着“良质”的驱使去不断调整软件系统以使所有的计算资源都不断逼近它们的极致状态时,不要忘了重新回到机器思维。在这个特有的机器时空维度上,我们会“锱铢必较”,算计每一个字节的存储、访问优化,每一类资源的合理利用和全局最优,以达到单位资源上更大规模的业务负载或者在指定业务负载前提下不断降低对资源的消耗,实现“绿色计算”的目的。

结语

《禅和摩托车维修艺术》是一本好书,却不是一本容易读懂的书。大道至简,但是作者通过了经年的冥思苦想才悟到了这一真谛,却是费尽了周折,读此书就如同跟作者一起回忆了整个思想形成的过程,虽辛苦但也算是小有收获。如果有机会能进一步研读,随着作者的行文脉络一并了解古今、东西方众多哲学先贤的著作及思想精髓,幸甚!

这篇文章对你有价值吗?

  • 相关推荐
  • 大家在看
  • FreeBSD 13.0正式发布:性能优化 升级LLVM Clang 11等

    FreeBSD13.0-RELEASE 于今天正式发布。FreeBSD13.0提供了性能上的改进(尤其是得益于硬件 P-States,英特尔 CPU 的基准跑分有明显提升),升级到 LLVM Clang11作为默认的编译器工具链,改进64位 POWER 架构支持,以及其他各种网络功能改进。64位 ARM (AArch64) 现在与 x86_64并列成为一级架构,EFI 引导改进,AES-NI 现在被默认包含在通用内核构建中,对 i386的默认 CPU 支持从 i486提升到 i686,以及其他各种硬件支持改进。在本

  • 环信荣获2020年度SaaS企业 TOP100

    2020 年,除了在线教育、短视频等赛道,已经很少有值得创业者全情投入的领域。而随着疫情改变商业环境、远程办公的普及,SaaS有望迎来新一波的发展热潮。就像当年国内的电商潮和移动互联网潮一样,国内SaaS领域在各个细分赛道都有玩家涌现。 2000 多家企业遍地开花 2021 年伊始,资本市场风云涌动,搅动了整个SaaS行业。据不完全统计,目前国内大大小小的SaaS公司超过 2000 家。仅 2021 年前两个月,国内SaaS领域一级市场公开的投

  • 环信大学:客户服务超高触达,零代码从短信/邮件跳转微信小程序客服

    微信小程序红利来了! 近期,微信小程序新增小程序外链功能,支持通过邮件、短信中的链接跳转到小程序,还支持通过二维码、IOS桌面图标跳转到小程序。此举将微信流量生态延伸到微信以外渠道,进一步增强了小程序的营销和服务功能,给微信生态的运营者和开发者提供了巨大的想象空间。 微信小程序由于依托微信生态,无需下载安装,用完即走,已经成为企业提供方便快捷的客服服务的重要入口。预计,小程序外链的发布,将大幅度推动企

  • 微软Edge浏览器的Canary通道现在提供了一个性能模式

    在最新的Edge Canary构建版本中出现了两个新功能。微软现在提供了一个启用性能模式的选项。 说明中写道:"性能模式可以帮助您优化速度、响应速度、内存、CPU和电池使用情况。性能改进可能会根据您的个人规格和浏览器习惯而有所不同。"需要注意的是,启用后,睡眠标签不再可用。该功能目前属于受控功能推,可以使用以下命令行开关启用。-enable-features=msPerformanceModeToggle除此之外,Edge Canary还带来了一个添加文本到PDF的?

  • Windows 10“设备使用”扩大测试:根据用途进行优化

    在过去几个月里,Windows10一直在内部测试全新的“Device Usage”(设备使用)页面,方便用户定制设备用途。而现在微软继续扩大测试规模,已经面向更多 Insider 用户开放该功能。

  • 四月累积更新出现严重问题:无法安装、性能倒退、系统崩溃

    由于近期发布的 KB5001330 累积更新,部分配置的 Windows 10 设备出现了各种严重的问题。目前用户已经报告了安装问题、性能问题、临时用户配置文件错误和令人担忧的系统崩溃等等。KB5001330 累积更新是在今年 4 月的补丁星期二活动日发布的,面向 Windows 10 20H1/20H2 两个功能更新的强制性安全更新,旨在修复之前更新所造成的几个漏洞和包括打印机在内的问题。根据社交媒体、Feedback Hub 以及国外论坛的多个报告,很多用户反馈?

  • 零点有数探索营商环境优化的前沿新动向

    营商环境优化以评价为基础,以优化为目标,以兴商为结果。因此需要评价在要点上,落地在改进中,成就在招商安商上。那么在这个意义上,营商环境优化不是一个单一部门的工作,也不是评价这样单一层次的工作。零点有数的营商环境专业团队最近在思考和探索,在聚焦政务服务优化,满足标准评价指标要求的基础上,营商环境优化的下一拍应该如何构设呢?首先要重视服务核心产业的营商环境打造,这就意味着要关注核心产业的要素构造、生态

  • 新发现11代酷睿在两种内存Gear配置模式下性能有差别

    11代酷睿桌面处理器已经正式发售,TPU针对内存部分进行了测试有了进一步发现,和大家分享下。先说理论部分,11代酷睿重新设计了内存控制器,定义为Gear(齿轮)工作模式,对应在BIOS中就是Gear 1和Gear 2两种设定。其中Gear 1工作模式为 1:1,也就是CPU内存控制器和内存工作频率之比是1:1,内存控制器和内存同步工作,此模式下可以最大内存效能,内存延迟最低。Gear 2模式就是2:1,内存控制器和内存异步工作,此模式通过减少一半的

  • 目前性能最好的电视盒子,高端电视盒子有哪些是值得买的

    目前国产智能电视普遍配置不高、系统体验一般,但高清视频和各种电视软件开始普及,高配置电视盒子的需求变得越来越高,今天就来讲一讲目前性能最好的电视盒子。当贝盒子B3 Pro这款盒子可以说是目前性价比最高的一款电视盒子,也是目前国产电视盒子中配置最高的一个产品,使用了晶晨S922X处理器,4G的运行内存加上64G的本地存储,就目前699这个价格来说是相当值得买的。当贝盒子的系统体验也是很不错,是目前国内唯一一家安卓原生TV系统改?

  • 鲁大师发布Q1季度手机排行:性能最强、最流畅手机揭晓!

    鲁大师2021年Q1季度手机排行榜来源于2021.01.01-03.31鲁大师数据中心数据,排行榜成绩均选取测试均值数据。Q1季度手机排行包含手机性能榜、手机芯片榜、手机流畅度排行、手机UI排行、手机AI芯片排行、手机温度榜、安卓新增市场占比共7个榜单。性能榜:ROG游戏手机5幻影夺冠Q1季度手机性能排行数据来源于鲁大师数据中心2021.01.01-03.31综合性能跑分,为保证数据更具备参考价值,选取测试样本均100。Q1季度除了水桶旗舰,也是各家发

  • 4K电视盒子推荐,2021哪个品牌性能最好?

    不得不说如今4K超高清已然成为了电视机的一个基本标准,不难发现如今各大厂商的电视机多数都是已4K分辨率来做的,那么作为电视机的好伙伴,电视盒子必然也要有4K才行。现在电视行业发展迅速,新买的智能电视过个几年就会跟不上系统更新以及硬件配置更新,这个时候配一个电视盒子就再好不过了,4K电视盒子同4K智能电视一样普及,但面对市场众多品牌确实不好选择,4K电视盒子哪个好就成为了多数人多讨论的话题。4K电视盒子一定要搭配

  • 纳税服务优化的关键问题,零点有数画好了重点!

    在为纳税人提供咨询服务和诉求处理方面,12366热线一直发挥着积极的作用。然而,12366也存在着比较明显的问题,优化提升12366的服务模式,已经成为税务部门进行营商环境优化和纳税服务品质提升的重要切入点之一。由于12366和纳税人的疑问与诉求直接接触,汇集了纳税人最为关心与亟待解决的问题,为纳税服务优化提供了大量有价值的线索,如果可以在现有的优化提升工作中处置得当,可能会成为以问题驱动型为基础的纳税服务质量建设的

  • 优化网络通信可以加速大规模机器学习模型的训练

    在高速网络设备中插入轻量级的优化代码,使得KAUST领导的合作将并行化计算系统的机器学习速度提高了五倍。这种 "网内聚合 "技术是与英特尔、微软和华盛顿大学的研究人员和系统架构师共同开发的,它可以利用现成的可编程网络硬件提供显著的速度提升。人工智能(AI)之所以能够拥有如此强大的 "理解 "和与世界互动的能力,其根本的好处是机器学习步骤,即使用大量标记的训练数据集来训练模型。训练AI的数据越多,当暴露于新的输入时,?

  • 目前性能最强的电视盒子:四款高端电视盒子评价

    先问大家一个问题,电视盒子是什么?很多人说就是用来看电视的,这个说法没错,但说得更加专业一点,电视盒子就是一个电视主机,为电视提供配置和系统,这也是电视盒子最关键的两个点,尤其是配置,对于我们现在看电视来说很重要。好的配置让我们日常看电视可以看更高清的视频,更丰富的色彩,更清晰的音质,更流畅的体验,配置扎实性能强劲已经成为了我们买电视盒子必备的一个功能了,那么目前性能最好的电视盒子有哪些,下面就来介绍一下。Apple

  • 马斯克:新款Model S Plaid将是特斯拉至今性能最好的车

    马斯克表示,新款Model S Plaid将是特斯拉至今性能最好的车辆,该车型将是第一款可在2秒内加速到0-60英里每小时的量产车,还是四门配置,最多可容纳7人。然而,在当前的汽车订购选项中,该公司还没有提供7座的选项。

  • 河北亿利滚塑油箱,超高性能征服世界级柴油机厂家

    今天我们就来聊一聊这征服世界级柴油机厂家的滚塑工艺和低调有实力的河北亿利。性能优越的滚塑油箱是大势所趋随着滚塑成型工艺的快速发展,随之带动滚塑原料技术不断创新,目前滚塑原料种类越来越多,性能越来越好,不同的产品,可以选择的滚塑原料更加宽广,滚塑制品可以延伸的产品更加广泛,而滚塑油箱就是很好的一个应用。相比于传统油箱,滚塑油箱的在各个方面都表现优越。·重量轻对于汽车而言,在功率恒定的情况下,重量越轻

  • vivo S9e首销获赞:颜值高、性能高,价格一点都不高

    ​3月3日发布的vivo S9e ,终于在27日迎来了线上线下渠道的全面开售。作为vivo S9系列的新成员,vivo S9e准确地抓住了年轻用户的喜好和需求,从高颜值的外观、到领先同价位产品的性能、以及强悍的影像实力,让vivo S9e在销量和口碑上获得了双丰收。

  • 联发科立功了,vivo S9搭载天玑1100好评不断,性能翻倍

    vivo S系列手机一直精于美颜自拍,成为女生们爱不释手的选择。最近发布的vivo S9除了升级4400万像素前置双摄和柔光灯外,还首发搭载联发科天玑1100芯片,一经推出就被冠以“自拍旗舰”之名。首发天玑1100芯片的vivo S9手机(图源中关村在线)vivo S9上这颗天玑1100芯片采用了台积电先进且成熟的6纳米制程,8核心CPU架构,四颗A78大核加持下的CPU性能十分强劲,同时ARM G77架构的九核GPU性能表现位列旗舰级。vivo S9的安兔兔跑分超?

  • 哗餐会|餐饮人大讲堂第47期:如何构建餐厅运营的长效优化机制?

    【导语】4月13日,第47期哗参会餐饮人大讲堂圆满结束。本期餐饮人大讲堂邀请到餐饮行业运营专家赵星涛老师。赵星涛曾任北京肯德基有限公司餐厅经理、北京辰森世纪有限公司项目负责人,拥有20年餐饮行业运营经验。在本期餐饮人大讲堂中,赵星涛就“如何从人财物”角度优化管理餐饮运营体系”展开精彩分享。以下为部分精彩内容:连锁餐饮企业发展到30家或50家门店的时候,通常会面临发展瓶颈期。伴随体量的快速扩张,之前一些细小或者是被?

  • Netflix正酝酿对用户界面展开新一轮优化调整

    为改善应用程序的用户体验,Netflix 一直在不断测试新的功能。近日有消息称,除了面向移动设备的 App,Netflix 也正在酝酿面向台式机 / TV 客户端的 UI 调整,比如删除“继续观看”列表中的特定节目(此前该功能已登陆移动 App)。需要指出的是,目前相关测试仅限于同意参与测试的用户,且并非所有试验功能都会最终走向正式版本。有幸参与新一轮测试的用户,可在熟悉的桌面(台式机 / 笔记本)客户端上找到两项重要的更改。首先是?

  • 热门标签