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

首頁 > 編程 > ASP > 正文

ASP javascript Application對象的Contents和StaticObjects做Cache的一些

2024-05-04 11:00:45
字體:
來源:轉載
供稿:網友
Application對象內置集合有為存放簡單類型設計的Contents,默認Application("key")就可以使用。

不過Application.Contents不能存放對象,可以存vbs數組,但是在javascript下甚至數組都不能放。

使用Application.Contents時,只能用丑陋的如:

for(var i=0;i<15000;i++){
    Application.Lock();
       // Application.Contents(i)="sdfdsffdsaf";
        Application(i)="sdfdsffdsaf";
Application.Unlock();}

在這里往Application.Contents存放了1.5w個String,共花費時間234ms.

改用Application.StaticObjects后:
 定義一個Dictionary作為StaticObject,用于存放數據,因為StaticObject是不允許直接訪問的。
  <object id="dict" runat="server" scope="Application" progid="Scripting.Dictionary"></object>

 Scripting.Dictionary本身的速度很快,不會對比較StaticObjects集合速度造成太大影響.

 Dictionary的速度:
    var d=new ActiveXObject("Scripting.Dictionary");
    for(var i=0;i<15000;i++){
        d.Item(i)="sdfdsffdsaf";}
  1.5w次插值,172ms
 當然自定義對象var d=new Object(); d[i]=..更快,1.5w次只要80-90ms,不過功能弱多了,所以還是用字典.

 下面看正式測試
    for(var i=0;i<15000;i++){
        Application.Lock();
        Application.StaticObjects("dict").Item(i)="sdfdsffdsaf";
        Application.Unlock();}
 時間長達6953ms,初步判斷StaticObjects集合的訪問速度是不能滿足Cache的要求了,這個速度和ADO OLEDB讀sql server 2000的時間相差無幾。

 不過還不打算馬上放棄,因為StaticObjects的優勢在于可以存放Object,而Dictionary也可以存放其它對象,這樣可以做為緩存對象,而不僅僅是數據。  

我在Application.StaticObjects("dict")里面再放入一個Object:
  Application.StaticObjects("dict").Item("o")=new Object();

    for(var i=0;i<15000;i++){
       Application.Lock();
       Application.StaticObjects("dict").Item("o")[i]="sdfdsffdsaf";
       Application.Unlock();}

  6656ms,快了點點.多一層Object并沒有降低速度,那么速度的慢并非結構復雜,而是StaticObjects的訪問占用。

 把dict的引用預存
 var t=Application.StaticObjects("dict");

    for(var i=0;i<15000;i++){
       Application.Lock();
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清原| 石棉县| 历史| 四平市| 鹤壁市| 巴林右旗| 肇东市| 南城县| 子长县| 林州市| 龙泉市| 文水县| 卢氏县| 台东市| 汾阳市| 浑源县| 同德县| 南城县| 临泉县| 闸北区| 涞水县| 天镇县| 丰都县| 永泰县| 米林县| 上蔡县| 巩义市| 蚌埠市| 木里| 曲阳县| 休宁县| 安龙县| 永德县| 尚义县| 日土县| 会东县| 监利县| 南充市| 当阳市| 杭锦后旗| 凯里市|