加入收藏 | 设为首页 | 会员中心 | 我要投稿 四平站长网 (https://www.0434zz.com.cn/)- 云服务器、对象存储、基础存储、视频终端、数据应用!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

成为JS专家之前必须掌握的事

发布时间:2021-01-31 14:36:39 所属栏目:外闻 来源:互联网
导读:性能优化是指在不影响正确性的前提下,使程序运行得更快,它是一个非常广泛的话题。 软件产品多种多样,影响程序执行效率的因素很多,因此,性能优化,特别是对不熟悉的项目做优化,不是一件容易的事。 性能优化可分为宏观和微观两个层面。宏观层面包括架构

性能优化是指在不影响正确性的前提下,使程序运行得更快,它是一个非常广泛的话题。

软件产品多种多样,影响程序执行效率的因素很多,因此,性能优化,特别是对不熟悉的项目做优化,不是一件容易的事。

性能优化可分为宏观和微观两个层面。宏观层面包括架构重构,而微观层面,则包括算法的优化,编译优化,工具分析,高性能编码等,这些方法是有可能独立于具体业务逻辑,因而有更加广泛的适应性,且更易于实施。

具体到性能优化的方法论,首先,应建立度量,你度量什么,你得到什么。所以,性能优化测试先行,须基于数据而不能凭空猜测,这是做优化的一个基本原则。搭建真实的压测环境,或者逼近真实环境,有时候是困难的,也可能非常耗费时间,但它依然是值得的。

有许多工具能帮助我们定位程序瓶颈,有些工具能做很友好的图形化展示,定位问题是解决问题的前置条件,但定位问题可能不是最难的,分析和优化才是最耗时的关键环节,修改之后,要再回归测试,验证是否如预期般有效。

什么是高性能程序?架构致广远、实现尽精微。

架构优化的关键是识别瓶颈,这类优化有很多套路,比如通过负载均衡做分布式改造,比如用多线程协程做并行化改造,比如用消息队列做异步化和解耦,比如用事件通知替代轮询,比如为数据访问增加缓存,比如用批处理+预取提升吞吐,比如IO与逻辑分离、读写分离等等。

架构调整和优化虽然收效很大,却因受限于各种现实因素,因而并不总是可行。

能不做的尽量不做、必须做的高效做是性能优化的一个根本法则,提升处理能力和降低计算量可视为性能优化的两个方向。

怎么让程序跑的更快?这要求我们充分利用硬件的各种特性,想方设法减少等待并且提高并发,提升CACHE命中率,使用更高效的结构和算法;而降低计算量,则可能意味着要跳出纯技术范畴,从产品和业务视角去审视:哪些功能是必须的,哪些功能是可选可配置的。

有时候,我们不得不从细节的维度去改进程序。通常,我们应该使用简单的数据结构和算法,但如有必要,就应积极使用更高效的结构和算法,不止逻辑结构,物理结构(实现)同样影响执行效率;分支预测、反馈优化、启发性以及基于机器学习编译优化的效果日益凸显;熟练掌握编程语言深刻理解标准库实现能帮助我们规避低性能陷阱;深入细节做代码微调甚至指令级优化有时候也能取得意想不到的效果。

有时候,我们需要做一些交换,比如用空间置换时间,比如牺牲一些通用性可读性换取高性能,我们只应当在非常必要的情况下才这么做,它是权衡的艺术。
 

4、无招胜有招

回到文章的开头,张三丰教给张无忌的太极拳,张无忌全忘了,还怎么能打败玄冥二老的呢?

因为太极拳重视的是拳意,而不是招式。所以张无忌领会了拳意,无招胜有招。

我们设计分布式系统的时候,也不要死记硬背三大理论,要真正懂得原理,然后才能一点一点迭代出最适合当前业务系统的分布式架构。

5、总结

  • 太极拳分为阴和阳两方面,就如 CAP 中的 C 和 A。
  • CAP 理论是分布式中基础理论,有三个重要指标:一致性、可用性、分区容错性。
  • ACID 是传统数据库的设计理念,追求强一致性。四个指标:原子性、一致性、隔离性、持久性。是 CAP 中 CP 的延伸。
  • BASE 理论是 CAP 中一致性和可用性权衡的结果。是 CAP 中的 AP 的延伸。注重可用性和性能优先,根据业务的场景特点,实现弹性的基本可用,然后实现数据的最终一致性。
  • BASE 理论在很大程度上,解决了事务性系统在性能、容错、可用性等方面的通病。
  • BASE 理论在 NoSQL 中应用广泛,是 NoSQL 系统设计的事实上的理论支撑。

文中也通过六大派围攻光明顶的案例给大家讲解了二阶段提交的核心原理,相信大家一定能看懂。

(编辑:四平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读