麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JS > 正文

JS類庫Bindows1.3中的內存釋放方式分析

2024-09-06 12:43:07
字體:
來源:轉載
供稿:網友
我在前段時間介紹過IE中JavaScript腳本Memory Leak的問題,后來在幾位熱心網友的討論下,基本認可了內存泄露的事實和原理。在小規模的測試case下,本來都達到了基本避免IE中腳本的ML問題。可是近來發現只以"仔細"來防止IE中腳本ML似乎是非常困難的一件事情,難道開始的討論有錯誤嗎?

    何謂"仔細"呢?就是說在有對象相互引用的時候,在對象丟棄時(不一定是頁面refresh)斷開彼此的引用鏈,特別是腳本中創建的對象和DHTML中的對象間的引用;清除HTML元素中的所有自定義屬性;清除所有HTML元素中的事件處理函數回調;對數組在廢棄時盡力delete掉內部元素。

    最重要的就是,盡量不創建冗余的腳本對象和DHTML元素對象,能通過修改屬性來達到的效果,即使麻煩一些也不重新生成新的對象。

    通過上面的步驟后,IE的內存使用增長率有所下降。可是仍然不能完全滿足對復雜的腳本運行的支持(接近Bindows這種復雜程度),體現在以下幾點:
    一、在腳本執行過程中,內存使用量仍然是個只增不減的過程;
    二、使用最小化IE窗口方式強制IE進行GC,只能GC物理內存,對虛擬內存無效;
    三、頁面跳離(URL改變)原腳本執行域,內存釋放量太少甚至不釋放;
    四、必須關閉IEXPLORE.EXE進程(即所有IE窗口),才能完全釋放IE所使用的內存。

    今天突然想起來久違的Bindows,跑去一看,2月底release了一個1.3版本,于是開始運行主頁上面給的demo。效果不用說了,自己去看一下就行了,效率也相當的高。demo里還有一個類似多維數據顯示的GRID,居然還支持行和列的表頭都固定。炫已經是bindows亙古不變的特點了,在還沒有被迷昏前,我想起應該看看Bindows對內存的處理怎么樣?真是不看不知道,一看嚇一跳!

    打開www.bindows.net,我的IE內存使用量在(28PM+18VM)M左右,打開它的demo program。內存上到(38PM+35VM)M左右,然后再操作了幾下,內存到了(80PM+75VM)M左右。于是關掉demo窗口,IE釋放了大概15M左右內存,就停在(70PM+70VM)M的水平,在改變當前IE的URL,跳到了google,IE的內存使用量似乎還是沒有減少@_@。哈哈,Bindows也有Memory Leak~。真是小人得志,555... 過了一段短時間再看,IE的內存使用降到和開啟IE時差不多了:)。真實好消息,看來不能再冤枉IE了,于是開始跟蹤Bindows在onunload時的處理代碼。

    怎么能一下就跳到onunload的代碼里去呢?這里有個hack,先對IE按下Alt+V,u,b(需要uncheck IE options高級中的"禁止腳本調試",菜單View里才有U快捷鍵選項)。然后立即關閉Bindows的演示dome窗口,選擇VS.NET 2003作為Script調試器,就直接跳到onunload的入口處了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 男女无套免费视频 | 羞羞视频免费观看网站 | 国产va在线观看 | sm高h视频| 国产成人精品区 | 美女性感毛片 | 91精品国产综合久久婷婷香蕉 | 国产精品久久久久久久模特 | 成人短视频在线播放 | 日本欧美一区二区三区在线播 | 中国毛片在线观看 | 一级免费黄视频 | 中文字幕精品在线视频 | 日韩2区 | 欧美一级黄色免费看 | 成人毛片av在线 | 中文在线国产 | 久久久久久久久日本理论电影 | 精品成人国产在线观看男人呻吟 | 久久小视频 | chengrenyingshi | 蜜桃欧美性大片免费视频 | 午夜小视频免费观看 | 国产大片全部免费看 | 欧美一级特黄aaaaaaa什 | 久久国产一二区 | 亚洲男人天堂 | 91精品欧美一区二区三区 | 精品国产一区二区三区成人影院 | 美国av在线免费观看 | 国产在线精品一区二区三区 | 黄色av免费网站 | 欧美精品免费一区二区三区 | 久久羞羞视频 | 极品国产91在线网站 | 色妞视频男女视频 | 亚洲第一页夜 | 国产午夜精品久久久久婷 | free japan xxxxhdsex69 | 91精品国产一区二区在线观看 | 成人毛片100部 |