优化Web中的性能

简介

web的优化就是一场阻止http请求最终访问到数据库的战争。
优化的方式就是加缓存,在各个节点加缓存。

web请求的流程及节点

熟悉流程及节点,才能定位性能的问题。而且优化的顺序一般也是按请求的流程逐一优化。这里的流程只是做个概要,并不代表全面。

整个流程是以最快的方式让用户看到结果

定位的方法

思路是:把看不见的http,具体化、可视化

定位是优化的前提。没有准确的定位就无法有效的解决问题。

浏览器

  1. 看整个请求的时间
  2. 看整个页面加载的时间
  3. 看页面加载的数据大小
  4. 看页面请求数

例如:

定位结果

  1. 是后台请求慢
  2. 是前端加载慢(document,js,image,request数等)

服务器监控

  1. 看整个请求的时间
  2. 看sql的时间(这个在数据库通过慢日志也可以)

例如:

定位结果

  1. 哪些url是慢的
  2. 哪些url是最常用的
  3. 哪些sql是慢的

代码的监控

  1. 通过System.out.print或者打断点来定位
  2. 给每个方式添加一个aop,监控期执行时间
    例如:

    long begin = System.currentTimeMillis();
    //执行的方法或者代码
    long end = System.currentTimeMillis();
    System.out.print("一共执行时间:"+(end-begin));

定位结果

  1. 哪一个方法或者哪一段代码性能慢

数据库的监控

  1. 慢日志

定位结果

  1. 哪些sql是慢的。

解决方案

思路:针对于http请求的节点按顺序解决。暂时不考虑从分布式群集的解决方案入手优化。

优化代理

  1. 加gzip(减少http的请求数据量)
  2. 加静态资源的缓存
  3. nginx缓存集成url级别的缓存
  4. 动静分离

优化web容器

  1. 优化迸发协议

优化应用

  1. 添加缓存
  2. 减少IO(减少循环的io,通过批量获取,然后在代码级别去处理,优化算法,把树状的复杂度变为平级复杂度)

优化数据库

  1. 添加索引
  2. 加冗余数据
  3. 修改表结构设计(这个很重要,有的时候是因为表设计不合理导致的,可以通过调整设计来解决)
  4. 添加缓存

其他说明

优化的方面不仅限于上面的方法。有些也没有一一赘述。比如说:加内存也是优化的不错解决方案。还有操作系统级别,io读写,网络请求等问题。

原链接http://www.cnblogs.com/ansn001/p/5301134.html

优化Web中的性能的更多相关文章

  1. Web中的性能优化

    优化Web中的性能 简介 web的优化就是一场阻止http请求最终访问到数据库的战争.优化的方式就是加缓存,在各个节点加缓存. web请求的流程及节点 熟悉流程及节点,才能定位性能的问题.而且优化的顺 ...

  2. 利用jsPerf优化Web应用的性能

    在前端开发的过程中,掌握好浏览器的特性进行有针对性的性能调优是一项基本工作,jsperf.com是一个用来发布基于HTML的针对性能比较的测试用例的网站,你可以在jsPerf上在线填写和运行测试用例, ...

  3. 如何合理优化WEB前端 高效提升WEB前端性能

    对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...

  4. H5 缓存机制浅析 移动端 Web 加载性能优化

    腾讯Bugly特约作者:贺辉超 1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5 引入的离线存储, ...

  5. Web标准中用于改善Web应用程序性能的各种方法总结

    提起Web应用程序中的性能改善,广大开发者们可能会想到JavaScript与DOM访问等基于各种既存技术的性能改善方法.最近,各种性能改善方法被汇总成为一个Web标准. 本文对Web标准中所包含的各种 ...

  6. 使用ThinkPHP开发中MySQL性能优化的最佳21条经验

    使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更 ...

  7. 移动 H5(PC Web)前端性能优化指南

    原文地址https://zhuanlan.zhihu.com/p/25176904?utm_source=wechat_session&utm_medium=social&utm_me ...

  8. 十条服务器端优化Web性能的技巧

    服务器  远程桌面连接工具 提高web应用的性能从来没有比现在更重要过.网络经济的比重一直在增长;全球经济超过5%的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其 ...

  9. 十条服务器端优化Web性能的技巧总结

    原文地址:http://www.jb51.net/yunying/452723.html 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网 ...

随机推荐

  1. qq空间等闪动的文字怎么做?

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. 手持设备点击响应速度,鼠标事件与touch事件的那些事

    前言 现在一直在做移动端的开发,这次将单页应用的网页内嵌入了app,于是老大反映了一个问题:app应用点击响应慢!我开始不以为然,于是拿着网页版的试了试,好像确实有一定延迟,于是开始了研究,最后选择了 ...

  3. MySQL练习-employees数据库(二)

    department 部门表 dept_emp 部门员工任职期表(按部门&时期) dept_manager 部门经理任职期表(按时期) employees 员工详情表 salaries 员工薪 ...

  4. Cheat sheets

  5. #ThinkPHP_3.2.2模型# where查询条件汇总

    特别喜欢 ThinkPHP_3.2.3 框架的Model,结合官方手册及查看源代码,汇总出其大体用法: 核心转换方法: $this->parseWhere($where); $whereStr ...

  6. 使用jstack分析cpu消耗过高的问题

    我们使用jdk自带的jstack来分析.当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙: 1.top查找出哪个进程消耗的cpu高 21125 co_ad2    18   ...

  7. kali安装vmtools问题

    切记使用此法,一定要确保kali没有装过vmware workstation自带的vmware_tools,不然要卸载之后才能使用.我当初就是安装了后使用此法,不能成功,卸载也不行,导致完全重装 安装 ...

  8. URI编码解码

    .NET string s= System.Web.HttpUtility.UrlEncode("123", System.Text.Encoding.Unicode); //编码 ...

  9. HTML CSS 特殊字符表(转载)

    转载地址:http://blog.csdn.net/bluestarf/article/details/40652011 转载原文地址:http://zhengmifan.com/news/noteb ...

  10. c语言socket通信

    http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html