国产探花免费观看_亚洲丰满少妇自慰呻吟_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.避免對服務器進行不必的數據往返傳輸

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔西县| 常德市| 邵阳市| 伊川县| 宜丰县| 香港| 千阳县| 台江县| 亚东县| 天水市| 鹿泉市| 淅川县| 松江区| 天气| 泸定县| 沙洋县| 淮安市| 安宁市| 海安县| 黄冈市| 临武县| 红河县| 凤山市| 图们市| 新郑市| 三台县| 上虞市| 通山县| 阳泉市| 西和县| 黄梅县| 博野县| 九龙城区| 云林县| 宿迁市| 大方县| 喜德县| 江永县| 漠河县| 临汾市| 鸡泽县|