程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 如何提高ASP.NET軟件開發中的程序性能

如何提高ASP.NET軟件開發中的程序性能

編輯:關於ASP.NET

我將不限於只討論asp.net應用程序的內容,因為它們只是web應用程序的一個子集。本文也不能提供一個完整提高web應用程序性能的指南,因為這需要一本書的篇幅。本文只提供一個提高web應用程序性能的良好的開端。(剩下的只有我們自己慢慢研究了)。

在工作這外,我經常去攀巖,在每次攀巖之前,我都會重溫一下攀巖線路圖及看一下前面的成功的攀巖者的建議。因為我們需要它們的成功經驗。同樣的,當你需要修改某個有性能問題的程序或者是要開發一個高性能的站點時,你也需要學習怎麼樣寫一個高性能的web應用程序。

我個人的經驗主要來源於在微軟的asp.net組擔任程序經理,運行和管理網站,和協助開發Community Server(它是asp.net Forums,.Text, and nGallery的集成升級版本軟件)。我想這些經驗能我讓來幫助大家。

你也許會想到把你的應用程序劃分成不同的邏輯層。你也可能聽過三層物理架構或N層架構,這是最常用的架構模式,它把不同的程序功能物理的分配給各個硬件來執行。這樣,如果我們想提高應用程序的性能的話,加一些硬件就可以達到目的了。按理說這種方法能提高應用程序的性能,但是我們應該避免使用這種方法。所以,只要有可能,我們都應該把asp.net頁面和它用到的組件放到一個應用程序中運行。

因為分布式的布署,要用到web services或者Remoting,它將使應用程序的性能下降20%或者更多。

對於數據層有點不同,最好還是把它獨立出來布署,用一個單獨的硬件來運行它。雖然這樣,但是數據庫仍然是應用程序性能的瓶頸。因此,當你想優化你的程序的時候,首先想到的地方就應該是優化數據層了。

在修改應用程序的出現性能問題的地方之前,你要先確認出問題的地方的程序看起來很嚴密,性能分析器對於查找應用程序哪些地方花費了多長時間非常有用。這些地方是我們用直覺感覺不到的。

本文討論兩種類型的性能優化:一種是大的性能優化(big optimizations),如用asp.net的Cache;另一種是小的性能優化(tiny optimizations)。小幅的性能優化有時候非常有用。你只對你的代碼作一個小的改到,然後一次調用它一千或一萬次。作一次大的性能優化,你會發生你的應用程序的速度會有一個很大的提升。作一次小的性能優化,也許每次請求只能提高一微秒,但是如果每天的請求量很大的話,那麼應用程序就有很顯著的性能提升。

數據層的性能

當你要優化一個應用程序的性能的時候,你可以按下面的順序工作:你的代碼要訪問數據庫?如果要,訪問數據庫頻率怎麼樣?同樣,這種測試方法也可以用在用web services或Remoting的程序代碼中。本文將不討論用Web services和Remoting的程序優化的問題。

如果在你的代碼中有一段必須訪問數據庫的請求,而你在其它的地方又看到實現同樣的功能 的代碼,那麼你首先要優化它。修改和完善繼續測試,除非你有一個非常大的性能問題,你的時間最好花在優化查詢,連接數據庫,返回數據集的大小,以及一次查詢往返回的時間上。

根據經驗的總結,讓我們來看看十個能幫助你提升你的應用程序性能的經驗,我將按將它們提升效率的多少從大到小小依次說明。

一、返回多個數據集

檢查你的訪問數據庫的代碼,看是否存在著要返回多次的請求。每次往返降低了你的應用程序的每秒能夠響應請求的次數。通過在單個數據庫請求中返回多個結果集,可以減少與數據庫通信的時間,使你的系統具有擴展性,也可以減少數據庫服務器響應請求的工作量。

如果你是用動態的SQL語句來返回多個數據集,那我建議你用存儲過程來替代動態的SQL語句。是否把業務邏輯寫到存儲過程中,這個有點爭議。但是我認為,把業務邏輯寫到存儲過程裡面可以限制返回結果集的大小,減小網絡數據的流量,在邏輯層也不用在過濾數據,這是一個好事情。

用SqlCommand對象的ExecuteReader方法返回一個強類型的業務對象,再調用NextResult方法來移動數據集指針來定位數據集。示例一演示了一個返回多個ArrayList強類型對象的例子。只從數據庫中返回你需要的數據可以大大的減小你的服務器所耗用的內存。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved