- 註冊時間
- 2002-6-15
- 線上時間
- 429 小時
- 閱讀權限
- 100
- 積分
- 357
- 主題
- 37
- 精華
- 0
- 文章
- 293
該用戶從未簽到 - 文章
- 293
|
Re: DBCache Tool 的設定經驗
熱心的gpc曾經在PTT PDA版(gpc是版主)發表關於使用NVFS機器的一些使用心得與cache的清除方法
我查了一下,gpc似乎還沒有在PIL上發表,以下這些內容轉自於PTT pda版
(註:以下的內容著作權歸於gpc,如有不當,請版主刪除)
--------------------------------------------------------------------------------------------------------------------------------------------
作者: gpc (你有受過pda的專業訓練嗎) 看板: PDA
標題: [分享] NVFS Palm 機器的一些要點 (TT5/T|X/LD) (dbcache)
時間: Tue Feb 28 01:28:31 2006
(A). nvfs機器的dbcache 與 non-nvfs機器的heap memory 概述
---------------------------------------------------------------------------
簡單說一下好了,新款的palm device,改成非揮發性記憶體(NVFS)
所以機器裡面的資料沒電不會不見,這當然是件好事情,但是
一體兩面的,因為要讓資料不會不見的方法就是把資料放在Flash ROM上面.
可是Flash ROM的存取速度遠比以往的RAM還要慢,因此nvfs的機器裡面會搭載另外一塊
記憶體,這個記憶體叫做dbcache,本質的話是RAM做的(就跟以前的palm的記憶體一樣),
但是就OS架構來說,nvfs機器裡面的dbcache同等於以前palm裡面的heap memory.
這個部份可能很多人都不知道什麼是heap memory,要說起來也很複雜,簡單的說就是,
像如果你有使用過 sony clie nr70v,你會發現他的包裝盒上面有說RAM有16MB,
但是真正你可以用的部份大概只有8MB左右吧?那剩下的8MB跑到哪呢?
剩下的那8MB其實就是heap memory.
作用是給正常run的程式來放一些暫存產生的變數或資料.
以上是non-nvfs機器裡面的heap memory作用.
但是當你的nvfs機器已經有點不一樣了.
以往的ram變成flash rom之後速度前輩變慢,所以不能在像以前可以直接在RAM跑程式,
所以OS5.4會把要跑的程式load到以前所謂的heap memory,也就是現在的dbcache.
大小方面:以tt5(升級1.1後)來說,大約有14mb可以使用,T|X有8mb左右.
雖然看起來8MB,14MB好像很大,但是要注意到,這些叫做dbcache,並不是heap memory.
而dbcache跟heap memory最大的差別就在於
以前我們的non-nvfs palm只要一跑完一個程式,就會把heap memory給清掉,
但是現在我們nvfs的palm,不會清掉.
(別問我為什麼不會清掉,因為剛剛說過,nvfs的機器用flash rom,所以載入程式慢,
只要載入完之後就會放在dbcache裡面以供下次如果要跑同樣程式時可以快速進入)
既然不會清掉,就會有滿出來的危機,
既然不會清掉,就算八百萬MB也會有滿出來的一天,
所以當dbcache滿出來了之後,結局就是"當機"(卡住 OR reset)
所以當你用nvfs機器的時候,如果你有使用數量不少的程式,就有可能會遇到這個問題.
(B). dbcache所造成 nvfs 機器不穩定的原因?
--------------------------------------------------------------------------
剛剛說了很多,簡單的說nvfs的機器如果dbcache滿了就會噴出來,噴了就會當機
所以我們要清.
但是很明顯的,清理dbcache的工作就很重要,首先palm5.4系統也不是白痴,
當他要跑程式的時候發現dbcache不夠的時候,他就會把之前放在dbcache裡面的東西清掉.
但是有兩種情況會出事情!
1.就是palm os本來認為我的dbcache足夠,所以就沒清,但是實際上程式跑到一半會不夠.
最明顯的就是hotsync,因為當你同步的時候有大量的資料在dbcache裡面運算,
(如果你還安裝些很大的檔案),而palm os不可能神奇到知道你要同步多少東西進去,
一但你的dbcache不夠,就噴了,於是你同步就失敗,機器就重啟了.
2.palm os清dbcache的時候清到不該清的東西,比如說你有運行一些背景的程式,
像是Pocket tune或是Chatopus,如果清dbcache的時候沒清好,會順把這些背景程式需要
的lib給從dbcache中掃掉,當那些背景程式需要那些lib卻在dbcache中找不到,
恭喜你,你的機器又要reset了.
基於以上原因,如果你一不小心,可能就會中獎.
(C). 如何穩定的清除dbcache以增加機器的穩定性與速度?
-----------------------------------------------------------------------------
基本上市面上目前有人流行用所謂的 dbcachetool 來做處理.
這個東西是日本人寫的一個可以手動來釋放 dbcache 中的內容物的工具
但是 根據實際測試的結果,這個dbcache tool的釋放能力 有點強,
在部分的情況下會把機器越放越慘,而且才有意想不到的後遺症.
因此並不建議使用這個東西來釋放dbcache.
目前最佳的方案是使用 "內建的瀏覽器"
當你有同步問題或是心血來潮時,就執行1下 "瀏覽器"
大家可能注意到,啟動瀏覽器花費很多時間,沒錯,其實那時候就是在釋放dbcache.
由於瀏覽器是一種很耗費資源的程式,所以每當它啟動,就會盡可能的把dbcache裡面的
可釋放的東西給釋放掉.並不會像其他的工具有不好的效果或是副作用.
作者: gpc (你有受過pda的專業訓練嗎) 看板: PDA
標題: Re: [分享] NVFS Palm 機器的一些要點 (TT5/T|X/LD …
時間: Tue Feb 28 11:47:59 2006
------------------------------------------------------------------------------
(D) dbcache 與 reset 地獄
其實上一回我們提到的dbcache滿出來只是小咖而已,因為dbcache滿出來頂多是噴了...
噴了就重新開機一樣,沒什麼大不了的,但是在某些情況下,噴了之後就會陷入所謂的
"reset地獄"
顧名思義,就像地獄一樣,逃都逃不出來,一般來說只能hardreset掉才能夠解決.
為什麼會進入reset地獄呢?其實是這樣的,之前我們提到的dbcache,
其實就是heap memory的進化,所以dbcache裡面當然會放一些資料(這裡指的不是程式)
*dbcache= DataBase Cache,中文大概是 資料庫快取
舉例來說,當我們運行內設的Launcher(應用程式)的時候,我們除了看到整個程式介面外,
還有一些分類啊~圖示可以設定,甚至還可以設定底圖,
所以那些分類/圖示/底圖就是屬於"資料"
可想而知,當dbcache快要滿出來的時候,之前說的那些資料將會在爆滿的dbcache中被刷掉,
(因為之前說過OS5.4是會自動清除dbcache的,只是他清的不夠聰明而以),當dbcache中的
資料被洗掉,可是機器依然reset了(reset的原因上次說過,就是有些必要的lib掛了),
這個時候,原先在dbcache裡面的資料就會發生嚴重的缺失與錯亂,當你reset之後,
系統中就會存在一系列錯誤的檔案與資料.
而reset地獄的原因是因為,palm os5.4在一開機的時候會去載入"Application"(應用程式)
這個東西,這個東西就是內建的launcher啦~
而剛剛說的這個launcher必要的一些資料已經錯亂了,於是程式執行錯誤=>reset
週而復始的就成為了reset地獄.
另外還有psysLaunchDB這個檔案,這個檔案有點像是我們硬碟裡面的FAT配置表,
在palm os裡面psysLaunchDB也是會一啟動後就載入到dbcache的,如果這個檔案爛掉了,
這時候reset到一半就會再次reset啦!
講了許多,但是重點還是只有一個,只要不讓dbcache滿出來,就什麼事情都沒有!
理論上是這樣,所以大家可要回憶一下上一篇中提到的釋放dbcache的方法.
---------------------------------------------------------------------------
(E) dbcache 的分配 與 程式使用量
最後要簡單說一下dbcache的分配量,這裡我只舉例T|X,其他的nvfs機器也大同小異,
以Palm T|X為例,他有一塊8MB的RAM當作dbcache來用,
其中當你一開機之後大概剩下4-5MB可以使用而已,
主要的原因當然在於那些常駐的lib與中文系統CJKOS,
次要的還有你安裝的launcher或是背景執行的程式.
舉例如下,我安裝了下述的程式,那我reset之後還有多少的dbcache可以用?
總共有 8MB (-)
CJKOS+24號字體 3MB
ZLauncher+底圖 1MB
必要的Lib 0.5MB
____________________
3.5MB
剩下的大概只有3.5MB左右,如果再加個chatopus和pocket tune,甚至開個WIFI跟BT,
又會吃掉很多的dbcache,到時候只要一同步,一不小心就會當機了.
(因為dbcache不夠系統會自動進行不太聰明的釋放動作,導致其他背景程式爆炸了)
-----------------------------------------------------------------------------
(F) 總結
當我們了解到dbcache的運作方式之後,我們就可以知道:
只要保持dbcache有足夠的空間,就不會在操作上遭遇到問題,
但是要保持足夠空間的方法,目前以使用"內建瀏覽器"來釋放為最佳,
一些dbcache的tool像是RLocker,dbcachetools,SharkCache,雖然似乎有效率,但並不安全.
我們使用內建的瀏覽器不但可以趁機上個網,還可以把dbcache給清除.安全又方便.
掌握了這個關鍵後,我們就不用擔心會有資料莫名的遺失(剛說過的dbcache滿出錯亂導致)
也不要再擔心莫名的reset和reset地獄了!
不過最後要補充的幾個要點是:
1.reset並不會釋放dbcache中的東西,一定得要用程式或工具清除
2.有部份程式是具有dbcache的破壞能力
所以就算你保持dbcache有一定空間的原則,當你運行到某些程式的時候,不但可能會reset,
reset地獄,也有可能會資料流失.
*至於dbcache要剩下多少才夠呢?一般來說 3MB以上就算很夠了!
如何觀看dbcache剩多少可以用 resco explorer(RAM INFO),TCPMP(about裡面有個夸號)
dbcachetools的DA功能,..................etc.
------------------------------------------------------------------------------
END, 文章by GPC |
|