构建高性能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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言也能写植物大战僵尸吗_植物大战僵尸僵尸写的纸条

    c语言也能写植物大战僵尸吗_植物大战僵尸僵尸写的纸条不少同学都玩过《植物大战僵尸》,最近PopCap公司又带来了新版的消息,这次高兴的轮到Xbox的用户了,日前PopCap公司公布了《植物大战僵尸》XBLA版的截图,这个版本的《植物大战僵尸》引入了多人合作与对抗模式,看图就知道好玩多了又刺激多了。 详见游戏说明,游戏视频于是,我在非常强烈的好奇心和求知欲下,自己动手写了一个简易的双人

    2025年8月11日
    5
  • (十一)DSP28335基础教程——EQEP实验(直流电机转速检测)

    (十一)DSP28335基础教程——EQEP实验(直流电机转速检测)0前言这一节我们来学习DSP的EQEP模块的功能。实验目标:通过光电编码器,将采集直流减速电机的转速并显示在LCD1602上。由于28335控制LCD1602的例程并不多,在下面解释的过程会详细贴出代码,并给出一些注意事项。本节将分为硬件部分、软件部分和实验展示三个方面进行介绍,不清楚的欢迎留言。1硬件部分我们需要五个硬件:可调电源、DSP28335核心板、烧写器、自带光电编码器的直流减速电机和LCD1602。其中,电机的额定电压为12V,因此,我们通过可调电源来调整电压,则可以调整电机的转速

    2022年10月7日
    2
  • MATLAB矩阵复制及扩充

    MATLAB矩阵复制及扩充文章目录一、repmat()方法二、Kron()方法一、repmat()方法例一:(行方向和列方向分别平铺矩阵,红框2,3表示平铺倍数)TIPS:【原矩阵】处可用用户自定义的矩阵变量代替   即Mat=[123;456],可用Mat替代function中原矩阵的位置例二:(行方向和列方向分别平铺矩阵,红框2,3表示平铺倍数)例三:(列方向平铺矩阵,红框2表示平铺矩阵的倍数)例四:(行方向平铺矩阵,红框3表示平铺矩阵的倍数)二、Kron()方法kron(A,B)

    2022年6月25日
    169
  • QTime 计时(正计时)

    #include<QDebug>#include<QTime>Widget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);QTimetime;time.start();//开始计时qDebug()<<QTime::currentTime().msec();//打印当前时间

    2022年4月10日
    169
  • Eclipse自动补全功能设置

    Eclipse自动补全功能设置如何设置Eclipse自动补全方法一:按照步骤设置第一步:点击Eclipse导航栏的Window按钮第二步:在Eclipse导航栏的window中找到preferences第三部:进入preferences中找到java→Editor→ContentAssit,在红箭头所指的方框内输入26个英文字母和一些符号“‘<>按照这些操作来进行,您就可以让Eclipse自动补全方法二:使用快捷键Alt+/…

    2022年6月28日
    33
  • Idea激活码最新教程2019.1.4版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2019.1.4版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2019 1 4 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2019 1 4 成功激活

    2025年5月24日
    2

发表回复

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

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