构建高性能web站点-读书笔记一

构建高性能web站点-读书笔记一

请求的过程中划分的几部分时间

  • 数据在网络上传输的时间

  • 站点服务器处理请求并生成响应数据的时间

  • 浏览器本地计算和渲染的时间

数据在网络上传输的时间

一般分为两部分,客户端发送请求经过网络到达服务端及服务端回应数据经过网络到达客户端,统称为响应时间,其决定因素为发送的数据量网络带宽

站点服务器处理请求并生成响应数据

每秒处理请求数(吞吐率)一般作为衡量服务器的性能标准。

浏览器本地计算和渲染时间

会影响的因素并发策略、样式渲染方式、脚本解释器的性能、页面大小、页面组件数量、页面组件缓存状态、页面组件域名分布和域名DNS解析等。

常见的优化性能方式

增加带宽

简单、直接。延伸出来的概念却是,当前的站点使用了多少带宽?带宽用到哪里去了?如何计算站点当前和未来可预见的带宽?带宽增加下载速度会增加吗?使用独享和共享带宽的本质是神马?如何节省带宽?

减少网页中的http请求数

一个网页包含了多个组件,每个组件都需要下载、计算、渲染,所以常见的使用下面场景切入

  • 数据简介的页面,使用较少的图片和脚本

  • 多个图片合并为一个文件,使用CSS背景偏移技术

  • 合并js和css

  • 使用浏览器的cache策略,减少重复下载

加快服务器脚本的计算速度

例如PHP,使用代码缓存机制,APC等,需注意的是,代码缓存机制适合不同场景的应用吗?

使用动态内容缓存

将动态结果和html输出结果缓存起来,在一段时间内,直接输出缓存内容,不在进行动态内容的计算。那么使用了缓存,将会带来的问题是成千上万的缓存文件如何保持、缓存命中率如何实现?缓存过期策略如何设计?在分布式的站点上如何缓存动态内容?

数据缓存

在一些特殊的字段上时,使用数据缓存,提高灵活性和命中率及性能要求

动态内容静态化

将生成的html输出直接保存为静态文档文件在服务器的硬盘上

选择适合的web服务器软件

根据应用的场景选择适合的web服务器软件,常见的apache、nginx等

页面组件分离

根据应用的类型、大小、下载量、服务器资源等,合理的分配组件的存放位置,势必提高应用的响应。比较常见的就会图片、文件单独存放在静态资源服务器上。

合理部署服务器

根据应用的场景部署合理的服务器,例如地区性、运营商的选择等

使用负载均衡

即将流量合理的分配到更多的服务器上。常见的手法有http重定向,dns轮训解析、反向代理服务器调度、lvs组件集群等。疑问是它们之间的区别?及是否实现高可用、是否实现规模扩展等。

优化数据库

优化数据库表结构的设计,设计良好的表结构可以降低后期进行横向扩展及负载均衡的难度。降低数据库创建和销毁的次数,减少频繁连接和释放导致的数据访问等待时间加长,合理的使用索引、数据库引擎。

考虑可扩展性

以上的所有点,都可以进行可扩展的考虑,保证应用具有高扩展性,在增加主机节点的时候,实现平滑的升级

减少视觉等待

该部分主要是从人类心理角度考虑、涉及人机交互的相关知识。比如youtube的,在打开一个新页面的时候,页面顶部会有一个加载的进度条,提醒用户,这就是一个很好的例子

以上内容摘自:《构建高性能web站点》 郭欣 著

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109045.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 激光测距原理与方法

    激光测距原理与方法激光测距粗划分为两种第一种原理大致是光速和往返时间的乘积的一半,就是测距仪和被测量物体之间的距离,以激光测距仪为例;第二种是以激光位移传感器原理为原理的方法的。激光的测量方法激光的测量方法大致有三种,脉冲法(激光回波法),相位法,三角反射法。脉冲法测量距离的精度一般是在+/-1米左右。另外,此类测距仪的测量盲区一般是15米左右。(激光回波分析法则用于远距离测量。…

    2022年5月5日
    55
  • 成功的背后1

    成功的背后1

    2021年8月23日
    54
  • Vista/Win7 使用Vista Loader激活后的 Windows/Linux双启动解决方案

    Vista/Win7 使用Vista Loader激活后的 Windows/Linux双启动解决方案Windows与Linux的双启动,一般使用Grub4Dos(以下简称Grub)来作双启动的工具。自从使用VistaLoader来“软改”bios来激活Vista/Win7后

    2022年7月3日
    39
  • MFC中使用CreateThread创建线程[通俗易懂]

    MFC中使用CreateThread创建线程[通俗易懂]HANDLEm_hListenThread=CreateThread(NULL,0,ThreadProc,this,0,NULL);DOWRDWINAPIThreadProc(LPVOIDlpParameter){xxxx*pxxx=(xxxx*)lpParameter;while(TRUE){//dosomethingSleep

    2022年7月27日
    1
  • getline(cin,str)与cin.getline(str)的区别 ,hd1062单词逆转

    getline(cin,str)与cin.getline(str)的区别 ,hd1062单词逆转

    2021年9月27日
    66
  • 5g网络切片是什么意思_网络切片是5G网络的标志性

    5g网络切片是什么意思_网络切片是5G网络的标志性众所周知,5G网络除了高速度、低时延外,还将承载万物互联,而要满足各种不同垂直行业的差异化需求,就要依靠5G网络切片来实现。因此有专业人士认为网络切片是5G的核心,是运营商服务垂直行业的基础和关键。那么,到底什么是网络切片,为什么5G需要网络切片?网络切片,到底“切”的是什么?01切片技术是5G网络的核心2020年以来,5G建设浪潮奔涌而来,行业应用加速落地,5G与产业加速渗透融合,与经济高质量发展、社会数字化转型的联系愈发紧密。“4G改变生活,5G改变社会”,虽然当前5G的建设成果及其展现出的威

    2022年9月28日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号