国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

實現ASP.NET程序性能目標的幾種方法

2024-07-10 13:10:51
字體:
來源:轉載
供稿:網友

 第一次在這里寫blog,希望不要被大家取笑!

  一. 調整程序代碼

  1.避免多次讀取相同數據

  在循環語句中不要包含無端重復執行的代碼,如:

  while ( dr.read())
  {
  if(dr.item["lastname"]==request.params[“lastname“])
  return true;
  else
  return false;
  }

  在上面循環中,對于datareader返回的每條記錄都要對request.params[“lastname“]進行一次求值,假如dr返回100條記錄,我們就對request.params[“lastname“]求值了100次 ,而這100次有99次都是多余的,下面的代碼相對效率就高些

  string strlastname=request.params[“lastname“];
  while ( dr.read())
  {
  if(dr.item["lastname"]==strlastname)
  return true;
  else
  return false;
  }

  總結:從任何類型的集合中讀取值都比較慢,我們需要多次訪問它時,可以先在局部變量中保存一個副本
  
  2.對連接字符串使用response.write();

  連接字符串是一個很費資源的操作,我們要把一個10字節的字符與一個30字節的字符連接起來,代碼必須分配一個40字節的內存區域,復制所有字節到這塊區域,然后在調整指針位置指到這塊區域,在釋放原來資源而response.write()方法提供了高效的緩沖和連接服務,所以一般情況下以下代碼

  response.write(“headline=“);
  response.write(“strheadline“);
  response.write(“,descreption=“);
  response.write(dr.item[“descreption“]);

  比下列代碼

  response.write(“headline=“)&_
  strheadline&_
  “,descreption=“&_
  dr.item[“descreption“];

  效率要高

  總結:盡量用response.write()和stringbuilder來連接字符串

  3.避免頻繁調用com組件轉為托管代碼.

  4.避免改變數組維數

  在程序中動態改變數組維數其實是用請求大小創建一個新的數組,拷貝原來數組中內容到里面,然后刪除原來數組,并用新數組代替舊數組地址,這就耗費了很大力氣

  5.不要過分依賴于代碼中的異常檢查

  異常處理是很消耗資源的操作,對于普通代碼能檢測到情況,就應盡少使用異常處理

  如

try
  {
  int a,b;
  a=100/b;
  }
  catch
  {
  b=0;
  }

  就不如用以下代碼效率高

  if(b==0)
  {
  error();
  }

  效率高

  總結:應盡少量的使用異常處理機制

  6。應該實現盡早綁定防止后期綁定,做法為在web頁的@page指令中加入o ption=“strict”這一選項可以防止在數據轉換時都是數據

  二。調整asp.net的使用

  1.禁用調試和跟蹤模式

  在部署產品級應用程序時,用這兩個模式會顯著降低性能

  2.預先在application 對象中載入數據

  把一些頻繁使用的又相對靜止的數據通過一次性讀取數據載入application 中可以提高程序的性能 application對象一旦建立九一直保存在內存中,直至程序結束,對于webl來說就是服務器關閉,但把幾mbyte的數據存在application中不是什么好的選擇了

  3.用page.ispostback來避免不必要的處理

  在實際表單提交時沒有必要運行初始化代碼,viewstate機制會保存我們任何表單的初始化元素

  4. 適當使用服務器控件

  在控件標記中加runat=server會增加web服務器的負擔.除非有必要處理控件的屬性,在服務器處理控件的事件時候就不要為標記加此屬性

  5.在必要的時候使用viewstate

  viewstate包含的控件越多,服務器負擔就愈大,利用viewstate還可能惹出麻煩,例如一個顯示錯誤信息的label控件,我們希望不要在每一個頁面上都重復該消息要清除某一控件的viewstate 屬性可以將其enableviewsate屬性設置為false.

  6.在沒有使用會話的頁面中禁止用session

  7.盡可能的緩存數據和頁面輸出

  cache可以大幅度提高性能,我們可以在頁面中編寫outputcache指令

  8.避免對服務器進行不必的數據往返傳輸

  可以利用驗證控件來減少不必要的往返數據傳輸,后面的比較倉促,老婆催著睡覺,再不睡估計要.....,呵呵.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文昌市| 天柱县| 盘山县| 乌恰县| 浙江省| 伊春市| 黔南| 驻马店市| 曲沃县| 汤阴县| 磐石市| 定远县| 开封县| 铅山县| 镇宁| 陇南市| 塔城市| 黎平县| 双城市| 河池市| 霍州市| 宜昌市| 雷山县| 麻栗坡县| 抚州市| 嵊州市| 衡山县| 乃东县| 始兴县| 文化| 商河县| 瑞安市| 巴彦县| 新昌县| 江华| 龙州县| 荥经县| 山丹县| 宣恩县| 卫辉市| 肥东县|