网站访问优化,未完待续

下午,网站被吐槽了,访问太慢。
   最初,我以为是首页的banner图片,太大导致的,之前是500kb的高清图。立即去看了下,banner大图已经压缩到50kb了。

   so,不是图片的问题。

   用Chrome打开网站,禁用缓存,总体访问情况:
272个请求,2.68MB,耗时5.56s(load:5.03s,DOMContentLoaded:2.45s) 

  先找出最大的3个文件:
jquery.js 118kb ,服务器本地,而且没有压缩,耗时2.12s
layout.css 55.8kb,服务器本地,而且没有压缩,耗时1.58s
banner.jpg 53.2kb,服务器本地,压缩过的高清图片

还有很多js,都花费了1~2s。

既然访问这么慢,必须去优化喽。
先做2步:
1.jquery.js等公共js文件,用网上免费的cdn。
http://www.bootcdn.cn/ 稳定、快速、免费的开源项目的CDN服务

使用之后,
耗时4.57s(load:4.03s,DOMContentLoaded:1.30s) 
节省了1s。
cdn版本的jquery大小38kb,加载需要100ms。

2.layout.css等本地js和css资源,压缩部署。
4.25(load:4.03s,DOMContentLoaded:1.30s) 
压缩之后,时间并没有减少。
受服务器的带宽和响应速度,影响比较大。
(从网上下载的一个压缩器,下载地址:
http://dd2.pc6.com/xc1/JsCssZip.zip
--------------------------------------------
在尝试了前面2步之后,效果比较明显的是第1步,jquery-cdn。

 在Chrome控制台,Network进一步查看,按照Time排序,又发现了一些问题:
1.piwik.js
   耗时2.12s
   piwik是一个开源的PHP统计工具,最初只使用了百度统计,后来想自己搞一套监测代码。
   哎,piwik统计和当前网站放在了同一个服务器的Apache下,带宽也是同一个,影响就比较大了。
  
2. p2p.jpg
  50kb左右的图片,耗时大多在1.7s~1.8s之间。
  图片这个问题,真心不是我的错。
  官网首页内容比较丰富,图片50kb也不是太大。

  解决办法:在不升级带宽的情况下,要么去掉piwik统计,舍不得呀,去掉了怎么看统计数据。用百度统计,数据容易丢失,比如换了账号或者出了点问题。
  少用图片或者把图片压缩得更小,不现实呀。
  不但不想压缩,还想用不压缩的更清楚的图片哩。
  以后还要增加更多的图片,展示内容。
--------------------------------------------
看来,还是需要升级带宽1MB到2MB

2.55(load:2.01s,DOMContentLoaded:630ms) 
升级带宽的效果很明显,首页加载时间由4.25s到2.55s。
这也映证了前面的分析,带宽确实是一个瓶颈。

另外,还发现一个问题,服务器不够稳定,应该是Apache的问题,有的时候,“一直等待服务器响应”。
不出意外的话,应该是Apache没有响应,难道是因为工作累了么。

在本地访问的时候,Apache也非常慢,这就不太对劲了。
现在突然怀疑是mysql数据库的问题了。

mysql和服务器上的apache以及本地的Apache都不在同一个机器上,而且自己手动安装的mysql配置也很扎,不太懂mysql的性能优化等配置。难道又要花钱使用云服务器么?

本来想的是,2个小时可以把访问时间由5s压缩到2s的,现在看来是不行了。

吃饱饭,继续优化~   

转载于:https://www.cnblogs.com/qitian1/p/6462752.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中重要文件

用户文件 /etc/passwd------用户名和UID等信息 /etc/shadow------用户密码 组账号 /etc/group-------组名和GID等信息 /etc/gshadow----组密码 1、用户名和UID等信息存放在/etc/passwd中(7列) 每一行都表示的是一个用户的信息;一行有…

HTML5教程(学完html的,这个可以快速过一遍)

目录 HTML5 教程HTML5 浏览器支持HTML5 新元素HTML5 语义元素HTML5 代码规范HTML5 MathMLHTML5 Web SQL数据库HTML5 迁移HTML5 CanvasHTML5 内联 SVGHTML5 Canvas VS svgHTML5 多媒体HTML5 Object元素HTML5 Audio音频HTML5 Video视频HTML5 新的input类型HTML5 表单元素

是时候抛弃Java 7 – JBoss EAP 6.4了!

这一周真是太棒了。 JBoss EAP 6.4已发布,并且在大量技术增强和新功能中 ,最大的是:Java 8已添加到受支持的配置列表中。 其中包括Oracle JDK和IBM JDK。 Java SE 7公开更新结束通知 2015年4月之后,Oracle将不再将Java SE 7的更新…

java 时间戳 星期几_java自定义获取星期几、几点、几分。

/*** author 9082046**qq.com**/public void out_week_hour_minute(){long eight_hour_ms 8*60*60*1000;//8小时*分*秒*毫秒,时区影响,北京时区:东八区。long per_week_ms 7*24*60*60*1000;//7天*时*分*秒*毫秒,一周。long four_day_ms 4*24*60*60*1000;//4天*时…

bzoj 3668 数位DP

收获: 1、如果有很多位操作,并且不包含-/等高级运算,那么可以一位一位考虑,如果求一个最优解,可以尝试逐位确定,这道题因为原始攻击值有范围,那么就需要数位DP。 1 /**************************…

常用的视频下载网站

视频已经成为生活中不可缺少的一部分,不搬运视频怎么在此基础上创新。 小视频下载 V视频助手 硕鼠视频下载 维棠视频下载 Apowersoft视频下载王 Video Grabber Eagleget视频下载 喜欢的朋友可以收藏一下,万一以后想用找不到就不能二次创新了!…

漏洞工具:nmap和nessus

NMAP NMAP(Network Mapper)是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题.Nmap以新颖的方式使用原始IP报文来发现网络上有一些主机,那些主机提供什么服务&…

java调用kettle例子_Kettle API - Java调用示例

Kettle API - Java调用示例对向前兼容性的推荐:如果想要动态地创造Transformation (例如:从元数据),使用XML文件方法(KTR)而不是使用API。XML文件兼容Kettle所有版本,同样对job有效的。1.下面的例子进行以下操作:1创建Transformat…

问题:三元向量的比较

粉丝投来一个题目:要求用到函数调用,编写程序 题目内容: 如果语文数学两门课程的成绩,甲同学分别是80分和90分,乙同学是90分和80分,丙同学是70和60分,这时比较甲同学和乙同学的成绩,只能说语文较差,数学较好,综合到一起就属于无法比较,但对丙同学可以比较,可以…

css隐藏元素的几种方法与区别

css隐藏元素的几种方法与区别 一:display:none;隐藏不占位 display 除了不能加入 CSS3 动画豪华大餐之外,基本效果卓越,没什么让人诟病的地方。二:position:absolut;left/top:-99999px;足够大的负值使其不可…

mysql版本不同会导致语法错误码_神奇的 SQL,Group By 真扎心,原来是这样!

作者:青石路原文:cnblogs.com/youzhibing/p/11516154.htmlGROUP BY 后 SELECT 列的限制标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键、聚合函数(SUM …

java线程池并发_Java并发教程–线程池

java线程池并发Java 1.5中提供的最通用的并发增强功能之一是引入了可自定义的线程池。 这些线程池使您可以对诸如线程数,线程重用,调度和线程构造之类的东西进行大量控制。 让我们回顾一下。 首先,线程池。 让我们直接进入java.util.concurre…

在Windows XP使用LC5(L0phtCrack)

LC5简介: LC5是国外一种很有名的密码破解软件,能破解用LM加密的SAM。可用它猜解2000\Xp\2003密码。它是著名的美国计算机安全公司Stake出品的Window/Unix密码查找软件LC4/LC5。 使用方法: 1,在主机里新建用户名,密码…

C++ 在屏幕上用星号打印菱形

粉丝提问&#xff1a;C 在屏幕上用星号打印菱形 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> void pr_start(int _num) {int n0;int i 0;for (n 1; n < 2*_num; n) {int temp n;if (n > _num){temp - 2 * (n - …

mysql组件化_MySql笔记

1、数据库基础操作语句链接数据库&#xff1a;mysql -u root -p 123456;选择数据库&#xff1a;USE database_name;显示可以数据库&#xff1a;SHOW DATABASES;显示数据库所有表&#xff1a;SHOW TABLES;显示表的列&#xff1a;SHOW COLUMNS FROM table_name;2、检索数据检索单…

让我们回顾一下如何通过JDBC插入Clob或Blob

LOB是所有数据库以及JDBC中的PITA。 正确处理它们需要花费几行代码&#xff0c;并且可以确保最终会出错。 因为您必须考虑以下几点&#xff1a; 首先&#xff0c;LOB是繁重的资源&#xff0c;需要特殊的生命周期管理。 分配LOB后&#xff0c;最好“释放”它&#xff0c;以减轻…

Android JNI入门第五篇——基本数据类型使用

前面讲到了java和native数据类型&#xff0c;这里就开始做一下使用&#xff1a; 第一步&#xff1a;新建工程 第二部&#xff1a;书写 java方法&#xff1a; [java] view plaincopyprint? public class NativeMethod { static { System.loadLibrary("com…

使用微信开发者工具添加小程序底部导航栏报错

粉丝求助&#xff1a; 示例图&#xff1a; 看了这个页面&#xff0c;很明显这个页面引用的路径都有问题。 解决办法&#xff1a;

应用“Cain Abel”实现DNS欺骗

环境的搭建&#xff1a; 1&#xff0c;在Windows 7安装IIS服务&#xff0c;访问www.baidu.com或其他任意站点&#xff0c;保存首页文件至本地wwwroot文件夹中&#xff1b; &#xff08;1&#xff09;打开控制面板&#xff0c;找到“程序”&#xff0c;点进去 点击“打开或关闭…

java 线程池技术_Java线程池技术以及实现

public class DefaultThreadPool implements ThreadPool{//线程池最大限制数private static final int MAX_WORKER_NUMBERS 10;//线程池默认的数量private static final int DEFAULT_WORKER_NUMBERS 5;//线程池最小数量private static final int MIN_WORKER_NUMBERS 1;//这是…