首页 > 语言 > 关键词  > asp.net教程最新资讯  > 正文

构建高性能ASP.NET站点 剖析页面处理过程(一)

2010-07-22 10:39 · 稿源:Cnblogs,www.cnblogs.com/yanyangtian

构建高性能ASP.NET站点之一 剖析页面的处理过程(前端)

前言:在对ASP.NET网站进行优化的时候,往往不是只是懂得ASP.NET就足够了的。 在优化的过程中,一般先是找出问题可能存在的地方,然后证明找出的问题就是要解决的问题,确认之后,在进行一些措施。系列文章在结构上的安排是这样的:先讲述前端的调优,我会在文章的标题后面标上”前端”,如果是后台代码的调优,我会在标题上标上”后端”,如果是数据库设计的调优,我会在标题上标上”数据库”,希望大家多多提建议。

本篇主要剖析过程,让大家有个全面的了解,下一篇就开始分步剖析了。

本篇的议题如下:

剖析页面的解析过程

分析出可能存在的优化点

剖析页面的解析过程

页面的解析过程,这里说的过程不是我们常说的ASP.NET页面的生命周期的过程,而且浏览器请求一个页面,然后浏览器呈现页面的过程。

在本篇的文章中,我会先阐述页面的解析过程,显示从整体上阐述,然后在每一个点上提出优化的方法。先整体,后局部。

当浏览器在请求一个Web页面是从URL开始的。下面就是过程描述:

1. 输入URL地址或者点击URL的一个链接

2. 浏览器根据URL地址,结合DNS,解析出URL对应的IP地址

3. 发送HTTP请求

4. 开始连接请求的服务器并且请求相关的内容(至于请求时怎么被处理的,我们这里暂时不讨论,只是后面的文章要讨论的问题)

5. 浏览器解析从服务器端返回的内容,并且把页面显现出来,同时也继续进行其他的请求。

上面基本上就是一个页面被请求到现实的过程。下面我们就开始剖析这个过程。

当输入URL之后,浏览器就要知道这个URL对应的IP是什么,只有知道了IP地址,浏览器才能准备的把请求发送到指定的服务器的具体IP和端口号上面。

浏览器的DNS解析器负责把URL解析为正确的IP地址。这个解析的工作是要花时间的,而且这个解析的时间段内,浏览器不是能从服务器那里下载到任何的东西的。但是这个解析的过程是可以优化的。试想,如果每次浏览器每次请求一个URL都需要解析,那么每次的请求都有一点的时间消耗,可能这个时间消耗很短,但是性能的提升就是一点点的“调”出来的。如果把对应URL和IP地址缓存起来,那么当再次请求相同的URL时,浏览器就不用去解析,而是直接读取缓存,这样势必会快一点。

其实浏览器和操纵系统是提供了这样的支持的。

当获得了IP地址之后,那么浏览器就向服务器发送HTTP的请求,下面我们就稍微看下这个发送请求是怎么样被发送的:

1. 浏览器通过发送一个TCP的包,要求服务器打开连接

2. 服务器也通过发送一个包来应答客户端的浏览器,告诉浏览器连接开了。

3. 浏览器发送一个HTTP的GET请求,这个请求包含了很多的东西了,例如我们常见的cookie和其他的head头信息。

这样,一个请求就算是发过去了。

请求发送去之后,之后就是服务器的事情了,服务器端的程序,例如,浏览器清楚的文件是一个ASP.NET的页面,那么服务器端就把请求通过IIS交给ASP.NET 运行时,最后进行一系列的活动之后,把最后的结果,当然,一般是以是以html的形式发送到客户端。

其实首先到达浏览器的就是html的那些文档,所谓的html的文档,就是纯粹的html代码,不包含什么图片,脚本,css等的。也就是页面的html结构。因为此时返回的只是页面的html结构。这个html文档的发送到浏览器的时间是很短的,一般是占整个响应时间的10%左右。

这样之后,那么页面的基本的骨架就在浏览器中了,下一步就是浏览器解析页面的过程,也就是一步步从上到下的解析html的骨架了。

如果此时在html文档中,遇到了img标签,那么浏览器就会发送HTTP请求到这个img响应的URL地址去获取图片,然后呈现出来。如果在html文档中有很多的图片,flash,那么浏览器就会一个个的请求,然后呈现。

到这里,大家也许感觉到这种方式有点慢了。确实这个图片等资源文件的请求的部分也是可以优化的。暂不说别的,如果每个图片都要请求,那么就要进行之前说的那些步骤:解析url,打开tcp连接等等。开连接也是要消耗资源的,就像我们在进行数据库访问一样,我们也是尽可能的少开数据库连接,多用连接池中的连接。道理一样,tcp连接也是可以重用的。但是重用也有问题:如果两个图片它们的url地址如下:

<imgsrc="q1.gif"height="16"width="16"/>

<imgsrc="q2.gif"height="16"width="16"/>

<imgsrc="q3.gif"height="16"width="16"/>

<imgsrc="q4.gif"height="16"width="16"/>

<imgsrc="q5.gif"height="16"width="16"/>

<imgsrc="q6.gif"height="16"width="16"/>

<imgsrc="q7.gif"height="16"width="16"/>

<imgsrc="q8.gif"height="16"width="16"/>

<imgsrc="q9.gif"height="16"width="16"/>

<imgsrc="q10.gif"height="16"width="16"/>

请求这些图片的时间消耗如下图:

大家首先看到最上面的黄线的部分,这个黄线就代表了浏览器打开连接,黄线的后半部分为蓝色,就表示浏览器请求到了html的文档。

最上面的第二条蓝线就表示第一个图片已经请求到了,此时请求这个图片使用还是之前的一个tcp的连接。

大家在看到第三条线,前部分是黄色的,表示请求第二个图片的时候又开了一个tcp的连接,这条线的后半部分为蓝色,表示图片已经请求到了。

剩下的要请求的一些图片都使用上一个tcp连接。

确实,tcp的连接时充分的被使用了,但是图片下载的速度确实慢了,从图中看出,图片是一个个的顺序的下载下来的。整个页面的响应时间可想而知。

如果采用下一种方式,如:

可以看出连接时多了,但是图片的几乎都是并行下载下来的,相比而言就快多了。

其实这就是一个权衡的问题了。

实际上浏览器也是内置了以一些优化方式的,例如缓存图片,脚本等。或者采用并行下载图片的方式,谈到并行下载,就如上图所看到的,势必会消耗更多的连接资源。

今天主要对页面的过程进行了初步的剖析,是的大家有个总体的把握,下一篇我们就开始逐步优化,敬请关注,也希望大家多多提出意见和反馈。

版权为小洋和博客园所有,欢迎转载,转载请标明出处给作者。

文章来源:https://www.cnblogs.com/yanyangtian

举报

  • 相关推荐
  • 成都地铁官方回应“防走光”设计:后续会考虑普及其他站点

    ​近日,有网友在社交平台上分享了成都地铁的一项人性化设计细节:部分站点的步梯与扶梯之间安装了非透明的磨砂玻璃。这一发现迅速引发了公众的关注和讨论。记者实地走访后确认,成都地铁确实在部分站点采用了这样的磨砂玻璃设计。 针对这一设计,成都地铁官方给出了正式回应。官方表示,这一改变源于此前乘客的反馈意见。有乘客提出,在步梯上行走时,由于透�

  • 微星PAG 系列电源上市!ATX 3.1 金牌全模组 助力暑假高性能装机

    微星科技推出全新PAG G850/750/650LS PCIE5系列电源,专为高性能平台打造,符合ATX3.1规范,支持PCIe5.1原生接口,售价349元起。关键亮点:1)采用ATX3.1标准设计,可承受2倍整机功耗和3倍显卡功耗的瞬时峰值;2)配备16-Pin PCIe5.1接口,最高单接口输出600W;3)创新异色设计接口,便于判断插头是否插牢;4)通过80PLUS金牌认证,转换效率达90%;5)提供六重保护机制,确保安全稳定。该系列电源为新一代CPU和显卡提供强劲动力支持,是暑期装机的高性价比之选。

  • 真我GT8 Pro参数出炉:骁龙8 Elite 2+2K直屏 冲击高端市场

    真我GT8 Pro采用2K直屏,搭载高通骁龙8 Elite 2旗舰平台,配备2亿像素大底潜望长焦,马达和扬声器也会加强,还有3D超声波指纹以及金属中框,冲击高端旗舰市场。 其中骁龙8 Elite 2是高通即将推出的新一代旗舰平台,它采用全新一代Oryon CPU,基于台积电第三代3nm制程N3P制造,GPU独立缓存为16MB,并集成Adreno 840 GPU。 此外,针对现在最火爆的AI应用,骁龙8 Elite 2处理器将带来100TOPS�

  • 腾讯云TencentOS提交Swap Table补丁系列 Linux内核内存交换性能提升20%~30%

    腾讯云操作系统团队提交了名为Swap Table的补丁系列,针对Linux内核交换子系统进行优化。该系列在4K页面和mTHP folios场景下,使系统性能提升20%-30%。Swap Table通过智能调度机制优化数据定位,支持大页尺寸减少操作次数,并实现动态空间扩展。27项独立改进解决了历史遗留问题,经实测性能显著提升。目前补丁系列正处于审核阶段,有望纳入Linux内核主线。这是腾讯云团队继内存控制组、页面热管理等创新后,在操作系统核心技术领域的又一突破,将强化TencentOS Server的高性能优势。

  • 苹果最强平板!全新iPad Pro将带来4大升级点

    苹果将于今年秋季推出新款iPad Pro,这是苹果最强大的平板电脑,新品将带来4大升级点,具体如下。 首发全新M5芯片 M5是这代iPad Pro最重大的升级点之一,目前关于M5芯片的升级细节尚不明确,这颗芯片采用台积电3nm工艺制程,其CPU、GPU和神经网络引擎将会迎来常规的升级迭代。 双前置摄像头 去年的iPad Pro M4将前置摄像头移至横向一侧,这次全新iPad Pro将在横向、纵向位置均

  • steam账号注册教程——全网最新最全的方法

    本文介绍了Steam平台注册及下载安装的完整教程。主要内容包括:1.使用迅 游加速器优化网络环境,解决注册过程中的错误提示;2.详细说明客户端下载安装步骤,强调要选择简体中文和避开中文路径;3.分步指导账户注册流程,包括邮箱验证、地区选择和人机验证;4.提醒全程使用加速器保持网络稳定,避免注册中断。教程旨在帮助新手玩家顺利注册Steam账号并下载游戏,提升�

  • B站支持绑定Steam:Steam账号绑定功能上线

    近日,哔哩哔哩(B站)官方账号“小站助手”宣布推出Steam账号绑定服务,目前该功能处于内测阶段,用户可通过加入任意B站“小站”社区获取测试权限。未加入小站的用户完成加入流程后,即可在App端进入小站页面,通过右上角侧边栏选择“我的游戏数据”开启绑定操作,网页端同步支持该功能。

  • 200W月活流量池,有效提高游戏LTV和ARPU值 Mistplay把激励流量玩出了新高度

    文章介绍了游戏激励平台Mistplay的创新模式,通过"玩赚"机制将短期激励升级为长期行为养成。该平台拥有200万月活用户,通过AI算法精准匹配游戏与玩家,显著提升用户留存率、付费转化等核心数据。典型案例显示,合作游戏7日留存率高于行业均值25%,30日ROAS提升21%。Mistplay近期推出iPhone版应用,并创新推出"LoyaltyPlay"模式,在非游戏应用中设置游戏激励中心。其独特优势在于自有用户流量池、AI驱动的精准投放技术,以及通过社区运营维持用户粘性。平台已覆盖全球九大市场,帮助多款游戏实现出海成功。

  • 拉大份额距离,海尔冰箱份额增至46.4%持续TOP1

    2025年上半年冰箱行业马太效应加剧,海尔冰箱以46.4%市场份额领跑行业,同比增长2.3个百分点。其成功源于技术创新:首创磁控全空间保鲜科技,使肉类保鲜期延长至10天,深海鱼虾可实现"冻鱼60天如初鲜"效果,该技术获国家科技进步奖。旗下爆款产品表现亮眼:海尔和悦冰箱拿下行业单品份额第一,麦浪冰箱凭借暖色系设计和用户共创模式,上市9个月销量突破70万台,成为8K+价位段TOP1。消费者调研显示,保鲜能力仍是选购核心,海尔通过科技突破精准满足用户对高端食材保鲜的需求,这是其持续领跑的关键。

  • Matrixport CEO John 出席 Foresight 2024 年度峰会,表示Matrixport将持续拥抱合规,提供专业资管服务

    Matrixport CEO John Ge在"Foresight2024"峰会上表示,合规化是加密行业主旋律。他指出当前加密市场缺乏新流量入场,资产管理趋向主流资产集中化,BTC、ETH等占比很高。随着加密ETF通过,合规属性增强,跨圈资管开始复苏。Matrixport将持续拥抱合规,为更多用户提供专业资管服务,帮助用户获取理性收益。公司成立于2019年,是亚洲最大的一站式加密金融服务平台,致力于构建�