全栈工程师修炼指南
熊燚(四火)
Oracle 首席软件工程师
32206 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
全栈回顾 (1讲)
加餐 (1讲)
全栈工程师修炼指南
15
15
1.0x
00:00/00:00
登录|注册

35 | 网站性能优化(下)

reflow 和 repaint
浏览器性能优化
JVM 调优
Amazon 对于 SOA 的实践
数据库表拆分的好处与坏处
项目中的性能优化实践
文本消息压缩
减少 JavaScript 阻塞
减少渲染次数
减少请求次数
寻找性能瓶颈的思路
关注点
性能指标
扩展阅读
总结思考
悲观锁变乐观锁
数据库表拆分
数据库索引创建
串行变并行
页面静态化
远程变本地
同步变异步
具体方法
基础知识
前端和网络层优化
后端和持久层优化
产品和架构调整
网站性能优化

该思维导图由 AI 生成,仅供参考

你好,我是四火。
上一讲我们介绍了网站性能优化的基础知识,包括性能指标、关注点,以及寻找性能瓶颈的思路。那么这一讲,我们就来介绍网站性能优化的具体方法,我们将从产品和架构、后端和持久层,以及前端和网络层这样三个部分分别展开。优化的角度和方法可以说花样繁多,我在这里举一些典型的例子,希望既能给你一些内容上的介绍,进而拓宽视野,也能给你一些思考角度上的启发。

产品和架构调整

对于一个应用来说,产品和架构恰巧是两个互相对立而又相辅相成的角度。作为全栈工程师,我们当然鼓励追求细节,但是在考虑性能优化的时候,我认为还是要优先考虑从大处着眼,而不是把大量时间花费在小处的细节提升上,以期望获得较为明显的效果。这里的“大处”,就主要包含了产品和技术架构两个维度。

1. 同步变异步

如果页面聚合在服务端进行,那么渲染前等待的时间,在整个任务依赖树上面,取决于最慢的一个路径什么时候完成;而如果页面聚合是在客户端进行的,那么页面每一个子区域的渲染往往都可以以 Ajax 的方式独立进行,且同时进行,而母页面则可以首先展示给用户,减少用户的等待时间。
这里我还想补充一点,我们可以把同步和异步结合起来使用以获得最好的效果。比方说,用户对于网页加载的延迟是很敏锐的,但是用户对于一个页面上不同的信息,关注程度是不同的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了网站性能优化的方法,从产品和架构、后端和持久层,以及前端和网络层三个方面展开。在产品和架构调整方面,作者提到了同步变异步、远程变本地和页面静态化等方法,强调了从大处着眼的重要性。在后端和持久层优化方面,串行变并行和数据库索引创建是重点讨论的内容。此外,文章还介绍了数据库表拆分和悲观锁变乐观锁等优化方式。在前端和网络层优化方面,减少请求次数和减少渲染次数是重要的优化目标。文章通过举例和实践,深入浅出地介绍了这些优化方法,并强调了性能优化的成本与效益之间的平衡。整体而言,本文为读者提供了丰富的性能优化思路和方法,对于网站性能优化有很好的指导意义。文章还提到了一些具体的技巧,如减少 JavaScript 阻塞和文本消息压缩等方法,以及对数据库表拆分方式的辩证看待。同时,还给出了扩展阅读建议,包括了 Amazon 对于 SOA 的实践和虚拟机、容器等性能优化的相关材料。整体而言,本文内容丰富,涵盖了多个方面的性能优化方法,对于读者快速了解网站性能优化具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全栈工程师修炼指南》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • mgxian
    如果使用了 HTTP/2 协议 “ 减少请求次数” 这条优化建议里把多文件压缩成一个可以不用做了,甚至做了会使用性能变慢。

    作者回复: 是的,你说的很对。实际上,HTTP/2 就是对于之前 1.1 版本“填坑”的问题,提高了性能,还解决了安全性等问题。

    2019-11-29
    3
  • leslie
    数据库如果需要做垂直拆分不少都是早期的设计上的坑:一口气吃成胖子或者没想到后期的扩展性,水平拆分倒是一种常态-数据量过大造成的。垂直拆分其实最被动:涉及到大量的代码修改;相对比而言水平拆分的代价就小许多。 Javascripe的坑有时同样蛮大的:故而其实如何合理使用任何一个部件需要整体的思考,否则经常容易把某个部件用爆了。

    作者回复: 关于拆分,我想补充的是,拆分有时候也是不可避免的,本来设计就是一个循序渐进的过程,最开始确实要避免过度设计。到后来随着业务的发展再来拆分也未必是一件坏事。

    2019-11-29
    2
  • 靠人品去赢
    老哥,你这文章真的稳。
    2019-11-29
    1
    6
  • William Ning
    够消化实践一波了
    2020-07-29
  • 💢 星星💢
    这些扩展阅读,够我学习一会了。。。
    2020-03-31
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部