35 | 网站性能优化(下)
四火
该思维导图由 AI 生成,仅供参考
你好,我是四火。
上一讲我们介绍了网站性能优化的基础知识,包括性能指标、关注点,以及寻找性能瓶颈的思路。那么这一讲,我们就来介绍网站性能优化的具体方法,我们将从产品和架构、后端和持久层,以及前端和网络层这样三个部分分别展开。优化的角度和方法可以说花样繁多,我在这里举一些典型的例子,希望既能给你一些内容上的介绍,进而拓宽视野,也能给你一些思考角度上的启发。
产品和架构调整
对于一个应用来说,产品和架构恰巧是两个互相对立而又相辅相成的角度。作为全栈工程师,我们当然鼓励追求细节,但是在考虑性能优化的时候,我认为还是要优先考虑从大处着眼,而不是把大量时间花费在小处的细节提升上,以期望获得较为明显的效果。这里的“大处”,就主要包含了产品和技术架构两个维度。
1. 同步变异步
如果页面聚合在服务端进行,那么渲染前等待的时间,在整个任务依赖树上面,取决于最慢的一个路径什么时候完成;而如果页面聚合是在客户端进行的,那么页面每一个子区域的渲染往往都可以以 Ajax 的方式独立进行,且同时进行,而母页面则可以首先展示给用户,减少用户的等待时间。
这里我还想补充一点,我们可以把同步和异步结合起来使用以获得最好的效果。比方说,用户对于网页加载的延迟是很敏锐的,但是用户对于一个页面上不同的信息,关注程度是不同的。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了网站性能优化的方法,从产品和架构、后端和持久层,以及前端和网络层三个方面展开。在产品和架构调整方面,作者提到了同步变异步、远程变本地和页面静态化等方法,强调了从大处着眼的重要性。在后端和持久层优化方面,串行变并行和数据库索引创建是重点讨论的内容。此外,文章还介绍了数据库表拆分和悲观锁变乐观锁等优化方式。在前端和网络层优化方面,减少请求次数和减少渲染次数是重要的优化目标。文章通过举例和实践,深入浅出地介绍了这些优化方法,并强调了性能优化的成本与效益之间的平衡。整体而言,本文为读者提供了丰富的性能优化思路和方法,对于网站性能优化有很好的指导意义。文章还提到了一些具体的技巧,如减少 JavaScript 阻塞和文本消息压缩等方法,以及对数据库表拆分方式的辩证看待。同时,还给出了扩展阅读建议,包括了 Amazon 对于 SOA 的实践和虚拟机、容器等性能优化的相关材料。整体而言,本文内容丰富,涵盖了多个方面的性能优化方法,对于读者快速了解网站性能优化具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全栈工程师修炼指南》,新⼈⾸单¥59
《全栈工程师修炼指南》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- mgxian如果使用了 HTTP/2 协议 “ 减少请求次数” 这条优化建议里把多文件压缩成一个可以不用做了,甚至做了会使用性能变慢。
作者回复: 是的,你说的很对。实际上,HTTP/2 就是对于之前 1.1 版本“填坑”的问题,提高了性能,还解决了安全性等问题。
2019-11-293 - leslie数据库如果需要做垂直拆分不少都是早期的设计上的坑:一口气吃成胖子或者没想到后期的扩展性,水平拆分倒是一种常态-数据量过大造成的。垂直拆分其实最被动:涉及到大量的代码修改;相对比而言水平拆分的代价就小许多。 Javascripe的坑有时同样蛮大的:故而其实如何合理使用任何一个部件需要整体的思考,否则经常容易把某个部件用爆了。
作者回复: 关于拆分,我想补充的是,拆分有时候也是不可避免的,本来设计就是一个循序渐进的过程,最开始确实要避免过度设计。到后来随着业务的发展再来拆分也未必是一件坏事。
2019-11-292 - 靠人品去赢老哥,你这文章真的稳。2019-11-2916
- William Ning够消化实践一波了2020-07-29
- 💢 星星💢这些扩展阅读,够我学习一会了。。。2020-03-31
收起评论