当前位置: 首页 > 编程日记 > 正文

巧妙使用Firebug插件,快速监控网站打开缓慢的原因

巧妙使用Firebug插件,快速监控网站打开缓慢的原因

原文 巧妙使用Firebug插件,快速监控网站打开缓慢的原因 

很多用户会问,我的网站首页才50KB,打开网页用了近60秒才打开?如何解释?
  用户抱怨服务器运行缓慢,w3wp.exe 出现 CPU 100%,每个网管都可能遇到?!是用户自己 ASP / PHP 程序设计有问题,还是服务器是问题,还是电信、网通、铁通互相访问太慢。经常是各说各有理,也扯不清,道不明,往往是以客户流失,更换空间商而结束,最后空间商与用户都是输家。
  我的网站首页才50KB,打开网页用了近60秒才打开?
  这个问题很难解释清楚,可能越解释越复杂,面对专业术语,客户以为你在推卸责任(秀才遇到兵有理说不清?)。
  因为客户根本不想听你解释,只想让网站访问更“快”。如何加快访问?让客户随时自己能“监控”到网站的状态,实时“看到”网站的状态?

首先,我们看看自己电脑与服务器之间的速度
  我们先下载一个Mozilla Firefox浏览器(火狐浏览器),下载地址 http://www.mozillaonline.com 然后再下载一个名叫Firebug的“Firefox 附加组件扩展”,下载地址 https://addons.mozilla.org/zh-CN/firefox/addon/1843/ 。

  安装Firebug浏览器插件后,在火狐浏览器的“工具”菜单里打开Firebug插件。


  同时在Firebug插件的“网络”菜单里选择“禁用浏览器缓存”的选项。
  假设我们访问 http://www.sina.com.cn 新浪网站,看到了吗,我们打开这个网站后,同时也打开了很多的Flash动画 SWF、 JPG、JS|、CSS文件,每个文件的下载时间、文件大小、传输速度都可以看到。

  
  这里的速度显示了你与服务器之间的速度,以及下载网页所需要的时间。如果JPG图片、SWF动画很大,需要很多的时间“下载”,自然打开网站就慢了。

  理论上,网页越简洁,打开速度越快。像 http://www.google.com  http://www.baidu.com 等网站,只有一些文字,几乎没有什么图片,打开速度就非常快,基本是“一闪就打开”。
  Firebug 显示了自己电脑与服务器之间的网络传输速度。受(1)是否开启GZIP压缩(2)ADSL的速度(3)服务器带宽(4)是否网间访问,如电信ADSL访问网通服务器网站等因素的影响。理论上ADSL速度越快,服务器带宽越高,那么互相访问的速度就越快。两者缺一不可。

其次,服务器上的ASP、PHP程序文件执行时间怎么监控呢?
  刚才通过Firebug显示的速度是网络传输速度和时间,但是无法直接看到服务器里ASP文件执行的时间,即无法看到这个ASP程序执行了多少时间,怎么找出有死循环的ASP页面?
  服务器CPU运算速度怎么看呢?有一个简单的办法,就是上传一个ASP论坛,比如动网ASP论坛,论坛的每个页面下面都有一个脚本执行时间。这个反应了每次打开ASP页面,服务器脚本执行的时间。可以简单看出服务器的运算速度。如果这个时间很小,一般零点零几秒,服务器执行速度很快,可以排除服务器自身问题。
    对于其他ASP网站,没有动网论坛这样的显示脚本执行时间功能,怎么办呢?我们可以在 http://www.zcnt.com 下载一个《智创网站专业级防火墙》通过防火墙的“IIS运行监控”功能可以监控到IIS里的ASP文件执行时间和情况。如下图所示,可以非常直观的看到网站脚本执行情况。代码有死循环、或执行超时可以监控到,对于排查服务器 w3wp.exe 出现 CPU 100%非常有帮助。

开启gzip网页压缩,让网页传输的更快,让客户“一闪就打开”网页。
  我们先来看看什么是gzip压缩,有什么特色?
  如图所示,我们通过第三方的gzip在线检查工具(网址 http://tool.chinaz.com/Gzips/ ),看到  http://www.phpwind.net/read-htm-tid-1187375.html 的页面进过 gzip压缩后从 220K减少到了48K左右。压缩率近78 %。

  开启gzip压缩功能,只需点几次鼠标,成本为零。而且是IIS自带的功能,稳定可靠。比更换为更高级的服务器带来的效果还好。对于国外的空间,国际带宽小,比如3M、5M、10M的国际带宽,开启gzip压缩能可以大大减少传输网页需要带宽。
  这个主要对 HTML、ASP、PHP、NET、CSS、JS等文本网页效果有显著提升。其他 JPG图片、Flash动画等可能已经压缩的了,不需要使用gzip压缩。
  浏览器一般会缓存HTML网页、JPG图片、SWF动画等静态文件,从第二次开始,如果服务器的HTML、JGP、SWF等静态文件没有修改,则直接读取本地浏览器缓存里的文件,而不会从服务器下载,无形中提高访问速度。
  ASP、PHP、NET等程序网页不会被浏览器缓存,仍然会每次从服务器“下载”,所以 gzip压缩就非常关键了,这就是为什么Discuz、PHPWind等论坛推荐开启gzip压缩。开启gzip压缩后,访问Discuz、PHPWind等论坛速度会非 常快。


我们在回头看看,我们访问一个网站会经过哪些步骤?


注:这里主要是讨论服务器环节,其他环节,如类似域名解析速度,减少网页图片数量等不在本文讨论范围之内。本文主要讨论一些关键的因素。

posted on 2015-06-19 14:16 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4588500.html

相关文章:

第二阶段第三次站立会议

昨天做了什么:写了部分购物车的功能 今天要干什么:修改后台代码的错误 遇到的困难:没有困难转载于:https://www.cnblogs.com/jingxiaopu/p/7109774.html

微信小程序生成小程序二维码 php 直接可以用

微信小程序开发交流qq群 581478349 承接微信小程序开发。扫码加微信。 小程序需要先上线才能生成二维码 HTTP请求的效果图: 小程序展示的效果图: 小程序展示二维码源码: 请求二维码图片base64路径,点击预览图片 onLoad: func…

vue和react相同点_我在React和Vue中创建了相同的应用程序。 这是区别。

vue和react相同点by Sunil Sandhu由Sunil Sandhu 我在React和Vue中创建了相同的应用程序。 这是区别。 (I created the same app in React and Vue. Here are the differences.) Having used Vue at my current workplace, I had a fairly solid understanding of how it all …

Filter(过滤器)

一、Filter过滤器(重要)     Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作。 1、Filter快速入门     1.1、步骤:      1. 创建一个类实现Filter接口      2. 重写接口中方法 doFilter方法是真正过滤的。      3. 在web.xml文件中配置 …

css3实现3D立体翻转效果

1、在IE下无法显示翻转效果,火狐和谷歌可以 1 /*样式css*/2 3 .nav-menu li {4 display: inline;5 }6 .nav-menu li a {7 color: #fff;8 display: block;9 text-decoration: none;10 overflow: visible;11 line-height: 40px;12 font-…

Ant Design 入门-参照官方文档使用组件

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 先来一个按钮组件使用的对比,官方文档的(不能直接用)和实际能用的。 官网demo: import { Table, Divider, Tag } from antd;const columns = [{title: Name,dataIndex: name,key: name,render: text =…

如何用JavaScript的回调函数做出承诺

by Adham El Banhawy由Adham El Banhawy 如何用JavaScript的回调函数做出承诺 (How to make a Promise out of a Callback function in JavaScript) Back-end developers run into challenges all the time while building applications or testing code. As a developer who …

VMware里的linux系统里的命令行里会有bee的声音,要如何关掉

VMware里的linux系统里的命令行里会有bee的声音,要如何关掉 取消bell报警声的方法:登陆linux系统vi /etc/inputrc找到set bell-style none 将前面的#去掉,之后重启系统即可解决声音问题若不见效可以通过下面的方式解决下bell-styl…

React-Todos

最近学完React的最基本概念,闲下来的时候就自己写了一个Todo-List的小应用。这里做个简略的说明,给想好好学React的新手看。 React-Todo 学习前提 这里我用了webpackb做了babel和JSX预处理和模块打包。所以对React和一些ES2015(ES6&#xff0…

Ant Design 入门-引用自己命名的组件

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 自己创建的组件:代码 import { Table, Divider, Tag } from antd; import React, { Component } from react; export default class My_Table extends Component {render() {const columns = [{title: …

迷宫出路代码_如何在软件开发的迷宫中找到自己的出路

迷宫出路代码by Tim Kleier蒂姆克莱尔(Tim Kleier) 如何在软件开发的迷宫中找到自己的出路 (How to find your way through the corn maze of software development) The corn maze is one of my favorite challenges to tackle. It’s an unnerving experience, especially w…

打包 React 项目并在服务器运行。

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 1.找到项目根目录的package.json文件:如图: 2.打开cmd执行:npm run build 3.生成DIST文件夹。 4.把DIST文件放到服务器phpStudty根目录,访问index.html。…

一些有用的Python问题

1. 修改IDLE工作路径,在命令交互模式下输入如下指令: >>> import os >>> os.getcwd() #查看当前的工作路径 >>> os.chdir(E:\\Python\\Demo) #修改当前的工作路径 2.Python中 ImportError: cannot import name NUMPY_MKL 的…

Python核心编程笔记---- print

在仅用变量名时,输出的字符串是用单引号括起来的。这个是为了让非字符串对象也可能以字符的形式显示在屏幕上。 而print 函数打印出来的是变量的值。 print 调用的是str()方法。而仅用变量名时调用的是repr()方法。 证明:------------------------------…

latex 插图解释_大O符号-只需插图和视频即可解释

latex 插图解释Big O notation is used to communicate how fast an algorithm is. This can be important when evaluating other people’s algorithms, and when evaluating your own! In this article, I’ll explain what Big O notation is and give you a list of the m…

[YTU]_2002(C语言实验——单词统计)

Description 从键盘输入一行字符,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。Input 输入只有一行句子。仅有空格和英文字母构成。 Output 单词的个数。 Sample Input stable marriage problem Consists of Matching memb…

资本中国人物-金融

一、二、三、店、五、土地、七、八、玖、拾起、白、千、一万、一亿、元(圆)、角、支、零、整个。这是上图中我们经常要填写。问:什么是它用数词?想必很多人都不是很清楚! 请看下面的两个相关的表数词: 1、数字化和大、小写数字对照…

Ant Design Pro 网络请求流程

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 在 Ant Design Pro 中,一个完整的前端 UI 交互到服务端处理流程是这样的: UI 组件交互操作; 调用 model 的 effect; 调用统一管理的 service 请求函数&a…

在Google Cloud Platform上持续部署Node.js

by Gautam Arora由Gautam Arora 在Google Cloud Platform上持续部署Node.js (Continuous Deployment for Node.js on the Google Cloud Platform) Google Cloud Platform (GCP) provides a host of options for Node developers to easily deploy our apps. Want a managed ho…

hdu-1108 最小公倍数

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid1108 题目类型: 数论 题意概括: 求两个数的最小公倍数 解题思路: 模拟 题目: 最小公倍数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O…

sql-schema与catalog

schema: 指的是说当偶create database caiceclb时,caiceclb就是一个schema catalog: 指的是所有的database目录,就像上图显示的那样,将MySQL原来的(mysql,infomation_schema)及后来新建的的data…

这是如何更好地利用JavaScript数组的方法

by pacdiv由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here’s how you can make better use of JavaScript arrays) Quick read, I promise. Over the last few months, I noticed that the exact same four mistakes kept coming back through the pull requests I c…

07、C语言——函数

函数 1、函数定义 函数返回值类型 函数名(形式参数列表)      {         函数体;      } 注意: 定义有参函数时,形参的定义可以采用传统方式或现代方式两种 1)传统方式: int …

This is probably not a problem with npm. There is likely additional logging output above

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 E:\weii_objct\invoice-manage-web-view>npm start > ant-design-pro@2.1.0 start E:\weii_objct\invoice-manage-web-view > cross-env APP_TYPE=site umi dev cross-env 不是内部或外部命令…

parcel react_如何使用Parcel捆绑React.js应用程序

parcel reactby Michael Ozoemena迈克尔奥索埃梅纳(Michael Ozoemena) 如何使用Parcel捆绑React.js应用程序 (How to use Parcel to bundle your React.js application) 什么是包裹? (What’s Parcel?) Parcel is a web application bundler which offers a blazi…

SparkSQL 与 Spark Core的关系

不多说,直接上干货! SparkSQL 与 Spark Core的关系 Spark SQL构建在Spark Core之上,专门用来处理结构化数据(不仅仅是SQL)。 Spark SQL在Spark Core的基础上针对结构化数据处理进行很多优化和改进, 简单来讲: Spark SQ…

linux操作系统-设置静态ip

在使用linux虚拟机的时候因为经常有关机的需求,然后重新开机后可能面临这上一次获取的ip被改变,在这里我分享一下在linux 下设置静态ip的经验 1.查看路由状态 [rootlocalhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Met…

判断数组里面的下标是否等于一个字符串

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 使用includes() 1、判断字符串里面是否包含一个字符串 示例: var a aaaaaaaavconsole.log(a.includes(v)); //truevar a aaaaaaaavconsole.log(a.includes(c)); //falsevar a aa…

如何获得更多的自由开发者客户

by Jad Joubran通过贾德乔布兰(Jad Joubran) 如何获得更多的自由开发者客户 (How to get more clients as a freelance developer) 我希望几年前知道的实用技巧 (Practical tips I wish I knew a few years ago) Whenever a conversation about freelancing kicks off with fe…

2017.6.4 入门组 NO.2——睡眠

其实这题就是将第二个时间-第一个时间,小于0的补全就A了代码如下: var x,y,k:string;l1,l2,x1,x2,x3,y1,y2,y3:longint; beginreadln(x);readln(y);l1:pos(:,x);l2:pos(:,y);k:copy(x,1,2); val(k,x1);k:copy(x,l11,2); val(k,y1);k:copy(y,1,2); val(k…