自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微軟PDC2009直擊:改進(jìn)ASP.NET 4運(yùn)行時(shí)

開發(fā) 后端
在微軟PDC2009大會(huì)上,對(duì)于ASP.NET 4運(yùn)行時(shí)引人矚目。本文將討論的是ASP.NET 4運(yùn)行時(shí)的相關(guān)改進(jìn)。

對(duì)于ASP.NET 4大家還是有很多期待的,本文將為大家講述的是在微軟PDC2009大會(huì)上關(guān)于改進(jìn)ASP.NET 4運(yùn)行時(shí)部分的內(nèi)容,希望對(duì)大家有所幫助。

#T#

在近期舉辦的PDC 09大會(huì)中,ASP.NET團(tuán)隊(duì)的程序經(jīng)理Stefan Schackow展示了ASP.NET 4在運(yùn)行時(shí)方面的改進(jìn)。改進(jìn)主要圍繞“性能”和“可擴(kuò)展性”兩個(gè)方面進(jìn)行,具體表現(xiàn)三點(diǎn):新的資源監(jiān)視選項(xiàng)、會(huì)話狀態(tài)以及輸出緩存的擴(kuò)展能力。

對(duì)于一個(gè)Web服務(wù)器來(lái)說(shuō),CPU和內(nèi)存占用量是兩個(gè)較為重要的性能指標(biāo),而兩者相比之下,內(nèi)存相對(duì)又更容易成為瓶頸。自從IIS 6引入了“應(yīng)用程序池”的概念開始,多個(gè)ASP.NET應(yīng)用程序便可以工作在單個(gè)進(jìn)程之中。但是在這種情況下,我們就很難通過(guò)性能監(jiān)視器來(lái)獲得某個(gè)特定的Web應(yīng)用程序所占用的系統(tǒng)資源,這有時(shí)會(huì)讓問(wèn)題的定位變得困難重重。由于CLR 4可以獲得某個(gè)單獨(dú)的應(yīng)用程序域所占用的CPU,以及堆上托管內(nèi)存的數(shù)量,于是在ASP.NET 4中引入了一個(gè)名為“應(yīng)用程序域資源管理(AppDomain Resource Management,ARM)”的功能,它會(huì)檢測(cè)并預(yù)估單個(gè)Web應(yīng)用程序資源占用的趨勢(shì),并將各種數(shù)據(jù)開放給性能計(jì)數(shù)器。

在ASP.NET 4中,ARM功能默認(rèn)并不會(huì)開放。ARM功能無(wú)法通過(guò)修改單獨(dú)應(yīng)用程序的web.config文件打開,你需要去系統(tǒng)的.NET配置目錄中修改Aspnet.config文件,在節(jié)點(diǎn)中將AppDomainResourceMonitoring啟用,***還需要重啟應(yīng)用程序池。然后便可以在性能監(jiān)視器中查看ASP.NET Applications分類中的相應(yīng)計(jì)數(shù)器。值得注意的是,性能監(jiān)視器中顯示的托管內(nèi)存占用并非是精確值,而是一個(gè)“預(yù)測(cè)”,這是因?yàn)橹挥性诘?代的GC發(fā)生時(shí),CLR才能獲得托管堆中內(nèi)存占用的準(zhǔn)確數(shù)量。

在會(huì)話狀態(tài)(Session State)使用方面,ASP.NET 4也作出了有效的改進(jìn)。Stefan表示,客戶中使用會(huì)話狀態(tài)的ASP.NET應(yīng)用程序數(shù)量之多超過(guò)了他的想象,尤其是跨進(jìn)程(Out of Process)的Session使用方式更是影響Web應(yīng)用程序性能的主要因素之一。因此,ASP.NET 4利用.NET中的壓縮功能,對(duì)跨進(jìn)程的會(huì)話狀態(tài)進(jìn)行了壓縮,包括SQL Server和會(huì)話狀態(tài)服務(wù)器——而這一切只需要在web.config中進(jìn)行配置即可。進(jìn)行壓縮之后可以節(jié)省1/3到2/3的流量,不過(guò)會(huì)帶來(lái)一些Web服務(wù)器的CPU壓力。

目前,ASP.NET運(yùn)行時(shí)會(huì)根據(jù)當(dāng)前請(qǐng)求的Http Handler是否實(shí)現(xiàn)IRequireSessionState接口來(lái)判斷是否啟用Session。在ASP.NET 4中,開發(fā)人員可以通過(guò)編程接口來(lái)控制某個(gè)請(qǐng)求是否啟用會(huì)話狀態(tài)。此外,ASP.NET 4還提供了“部分會(huì)話狀態(tài)(Partial Session State)”的功能,即只加載會(huì)話狀態(tài)指定key的數(shù)據(jù),這除了有效減少會(huì)話狀態(tài)的通信開銷外,也提供了額外的擴(kuò)展能力。例如,ASP.NET團(tuán)隊(duì)打算在AppFabric分布式緩存(其前身為Velocity)正式發(fā)布后,基于AppFabric構(gòu)建一個(gè)新的Session State Provider。

ASP.NET4在輸出緩存(Output Cache)上也增加了一些擴(kuò)展點(diǎn),主要可以讓開發(fā)人員為控件和請(qǐng)求級(jí)別的緩存定制存儲(chǔ)機(jī)制,例如磁盤,分布式緩存,甚至是云中,而在目前的ASP.NET中,所有數(shù)據(jù)都只能緩存在進(jìn)程的內(nèi)存中。這個(gè)擴(kuò)展機(jī)制支持緩存的絕對(duì)過(guò)期(Absolute Expiration)時(shí)間,文件依賴,和靜態(tài)替換和驗(yàn)證回調(diào)功能,不過(guò)為了保證緩存實(shí)現(xiàn)的通用性,它不支持相對(duì)過(guò)期(Sliding Expiration)時(shí)間和其他形式的依賴。與會(huì)話狀態(tài)一樣,在AppFabric發(fā)布之后,ASP.NET團(tuán)隊(duì)也會(huì)提供相應(yīng)的Ouput Cache Provider,不過(guò)按照計(jì)劃這會(huì)在ASP.NET 4 RTM之后才會(huì)發(fā)布了。Stefan表示,這些額外的Provider擴(kuò)展都會(huì)作為開源項(xiàng)目托管在CodePlex網(wǎng)站上。

***,基于IIS 7.5的“預(yù)熱”功能,ASP.NET 4可以讓IIS 7.5自動(dòng)運(yùn)行web.config中指定的頁(yè)面。Stefan表示,這個(gè)功能并不會(huì)給程序性能帶來(lái)提高,只是讓用戶避免遭遇程序冷啟動(dòng)所帶來(lái)的延遲效果。

責(zé)任編輯:彭凡 來(lái)源: InfoQ
相關(guān)推薦

2009-11-17 13:51:08

微軟PDC2009大會(huì)

2009-12-10 09:23:13

ASP.NET開發(fā)

2009-11-19 09:33:28

SilverlightPDC2009

2009-07-20 16:14:39

ASP.NET運(yùn)行時(shí)

2023-06-30 14:03:00

ASP.NET模塊化設(shè)計(jì)

2010-01-08 11:04:06

ASP.NET 4SEO

2009-11-18 09:50:53

微軟PDC2009大會(huì)

2011-08-04 10:34:48

ASP.NET MVC

2011-01-05 08:52:15

ASP.NET 4

2009-08-05 17:54:04

ASP.NET運(yùn)行模式

2009-09-04 16:28:05

ASP.NET 4.0

2025-03-28 01:00:00

Go語(yǔ)言版本

2015-07-20 15:44:46

Swift框架MJExtension反射

2009-07-28 17:02:10

ASP.NET運(yùn)行環(huán)境

2009-07-22 17:45:35

ASP.NET教程

2009-04-02 11:00:09

微軟ASP.NETMVC

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-22 16:34:36

使用T4ASP.NET MVC

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)