数据库、JVM、缓存、SQL等性能调优方法和原理总结(一)

一、Web网站调优

1、最小化http请求

一个正常HTTP请求的流程简述:如在浏览器中输入"www.xxxxxx.com"并按下回车,浏览器再与这个URL指向的服务器建立连接,然后浏览器才能向服务器发送请求信息,服务器在接受到请求的信息后再返回相应的信息,浏览器接收到来自服务器的应答信息后,对这些数据解释执行。而当我们请求的网页文件中有很多图片、CSS、JS甚至音乐等信息时,将会频繁的与服务器建立连接,与释放连接,这必定会造成资源的浪费,且每个HTTP请求都会对服务器和浏览器产生性能负担。网速相同的条件下,下载一个100KB的图片比下载两个50KB的图片要快。所以,请减少HTTP请求。

针对于减少HTTP请求数量,可以从以下几个方面进行优化:①内联图片;②CSS Sprites;③合并css和js文件(使用压缩工具,如YUI compressor,Gulp,Webpack);④图片映射;⑤图片惰性加载(lazyload)。

2、压缩

①压缩图片:

1)缩小图片分辨率;

2)改变图片格式;

3)降低图片保存质量。

推荐使用TinyPNG

②压缩CSS和JS:

去除不必要的空白符、格式符、注释(即对代码进行格式化)。

推荐使用YUI compressorGulpWebpack

③Gzip压缩响应包:

在现在的HTTP协议中,通常会使用gzip来压力HTTP响应包,从HTTP / 1.1开始,Web客户端通过HTTP请求中的Accept-Encoding标头指示对压缩的支持。

Accept-Encoding:gzip,deflate

如果服务器接受到的语法中包括这个头,就会使用客户端列出来的方法中的一种来压缩响应,Web服务器通过响应中的Content-Encoding头来通知Web客户端。

Content-Encoding:gzip

3、外置JavaScript和CSS,将css放在顶部,将js放在底部

内联JavaScript和CSS的优点如下:

1)有效减少 HTTP 请求次数,提升前端页面性能,缓解服务器压力;

2)浏览器加载完CSS才能渲染页面,因此可以防止CSS文件无法读取而造成页面裸奔的现象。

内联JavaScript和CSS的缺点如下:

1)可维护性差,每天如果有需要修改内容,必须对很多页面进行修改;

2)内联JavaScript和CSS在每次页面加载的都必须重新加载;

3)协同开发的能力差,不方便多名开者同步工作。

外联JavaScript和CSS的优点如下:

1)如果JavaScript和CSS被多个页面调用时,这样只要修改一个文件就可以,提高可维护性;

2)分离HTML、CSS和Javascript,提高js和css的复用性;

3)外置Javascript文件可以被浏览器缓存。

外联JavaScript和CSS的缺点如下:

1)外置的方式增加了HTTP的请求数;(通过缓存来解决)

2)浏览器要加载完CSS才能渲染页面,因此影响页面的性能。

5、移除重复脚本

如果一个页面中有两次使用到同一个JavaScript文件,那这将对页面性能产生很大的影响。导致一个脚本的重复又两个主要因素:团队大小和脚本数量。开发一个网站需要极大数量的资源,不同的团队需要构建一个大型web的不同部分,当团队整合和沟通工作没有做足,则容易出现重复脚本的情况。当然脚本数量也是重要的一环,脚本数量越多越容易出现重复脚本的情况。

重复的脚本通常有两个方面影响页面性能:一是增加了不必要的HTTP请求;二是JavaScript执行所花费的时间。

6、避免重定向

重定向:用户请求的页面被转移到了别的地方,浏览器向服务请请求一个页面,服务器告诉浏览器请求的页面已经被转移到另外一个页面,并告知另一个页面地址,浏览器就再发送请求到重定向的地址。这样会增加服务器和浏览器之间的往返次数,影响网站性能。


重定向

重定向状态码有:301:永久重定向;302:临时重定向。304:not modified 并不是真的重定向,它是用来告诉浏览器get请求的文件在缓存中,避免重新下载。

如果一个页面中有两次使用到同一个JavaScript文件,那这将对页面性能产生很大的影响。导致一个脚本的重复又两个主要因素:团队大小和脚本数量。开发一个网站需要极大数量的资源,不同的团队需要构建一个大型web的不同部分,当团队整合和沟通工作没有做足,则容易出现重复脚本的情况。当然脚本数量也是重要的一环,脚本数量越多越容易出现重复脚本的情况。

重复的脚本通常有两个方面影响页面性能:一是增加了不必要的HTTP请求;二是JavaScript执行所花费的时间。

7、CDN内容分发网络

虽然用户平均的带宽每年都在增长,但是随着系统用户特性不同,用户与Web服务器的距离也在不断的拉长,而用户与Web服务器间距离长短会影响到页面响应时间。网站最初通常将所有的服务器放在同一个地方,当用户群增加时,公司就必须面服务器放置地点不再合适的问题,有必要在多个地理位置不同的服务器上部署内容。

如果Web服务器离用户更近,则HTTP请求的响应时间将会缩短,与其重新设计应用程序,不如将应用程序Web服务器分散开,这样不仅能达到响应时间大幅减少的目的,还更容易实现,所以我们研究了一种新的技术即内容分布网络CDN(Content Delivery Network)。

尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。--《百度百科》

注意点:

实时性问题,在网络内容发生变化时将新的网络内容从服务器端直接传送到缓存器,或者当对网络内容的访问增加时将数据源服务器的网络内容尽可能实时地复制到缓存服务器,使来自于远程服务器的网络内容网页与复本服务器或缓存器中的网页保持同步。

8、减少DNS查询

DNS解析是存在开销的,通常浏览器查找一个指定主机名的IP地址,需要花费20到120ms,在DNS解析完成之前,浏览器不能从主机名那里下载任何东西。

在DNS解析过程中,减少唯一主机名的数量也呆以缩短DNS解析时间,如果客户端的DNS缓存为空时,DNS查找的数量与Web页面中唯一主机名的数量相等。但是减少唯一主机名的数量有可能减少页面中发生的并行下载量。减少并行下载可能会增加响应时间。我的准则是将这些组件分成至少两个但不超过四个主机名。这在减少DNS查找和允许高度并行下载之间取得了很好的折衷。

参考:

1. https://kuaibao.qq.com/s/20180815A0B1HW00?refer=spider

2. http://www.cnblogs.com/Darren_code/archive/2011/12/31/property.htm

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,135评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,317评论 3 397
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,596评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,481评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,492评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,153评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,737评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,657评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,193评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,276评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,420评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,093评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,783评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,262评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,787评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,427评论 2 359