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


相关推荐

  • LaTeX 换行、换页、空白空间[通俗易懂]

    LaTeX 换行、换页、空白空间[通俗易懂]一般来说,我们不推荐你改变默认的LaTeX文档结构。当然,我们有时候也有这个需求。所以,在本文中,我们将解释如何在文档中插入空行,以及插入任意的空白。

    2022年5月14日
    149
  • 在ubuntu系统下安装python

    在ubuntu系统下安装python

    2021年10月6日
    37
  • sqlyog安装教程注册码_vlive安卓安装包

    sqlyog安装教程注册码_vlive安卓安装包SQLyog是啥?一款很好用的mysql客户端工具 安装包与注册码链接:中文版SQLyog,64位32位都有密码:p6xk花了我3个C币…且用且珍惜(╥╯^╰╥)听说很好用,等我用熟练了出个使用教程…

    2022年9月23日
    3
  • ps抠公章的最简单方法_PS抠图公章被判刑

    ps抠公章的最简单方法_PS抠图公章被判刑搞设计的很苦逼,整天面对各种各样任务,除了修图、排版外,还时不时会有些另类需求。这时如果掌握一些小技巧就不用临时抱佛脚啦。下面献上一计:教大家怎么用PS抠公章。有需要的拿去,PS:不要干坏事吆!效

    2022年8月1日
    3
  • Maven根据Profiled读取不同配置文件

    Maven根据Profiled读取不同配置文件 前言在日常开发中,我们大多都会有开发环境(dev)、测试环境(test)、生产环境(prod),不同环境的参数肯定不一样,我们需要在打包的时候,不同环境打不同当包,如果手动改,一方面效率低,容易出错,而且每次打包都改动,非常麻烦,所以Maven给我们提供了profile的配置。 正文Mavenresourcesplugin支持明确声明<directory>指定…

    2022年4月30日
    43
  • macbook双系统文件共享_华为双系统短信共享吗

    macbook双系统文件共享_华为双系统短信共享吗MacBook安装双系统多分区共享访问解决方案1.   需求在MacBook中安装Win7,mac双系统。磁盘分区为4个(A,B,C,D),其中A(300G),B(400G)存放个人和系统无关的东西并实现两个系统都能访问A、B;C(150G)安装Win764位系统;D(150G)安装MacOS系统。双系统之间互不影响,也就是说如果Win7

    2022年10月5日
    2

发表回复

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

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