作者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裡面的
可釋放的東西給釋放掉.並不會像其他的工具有不好的效果或是副作用.
---
打好多字,先休息,有控在繼續.
----------------------------------------------------------------------------
(D) dbcache 與 reset 地獄
(E) dbcache 的分配 與 程式使用量
--
在一個飄著雪的市鎮,有一間工廠,沒有任何工人進出,
但是卻有源源不絕的PDA,從工廠裡面運出來.
傳說中在工廠的深處,有一個專門為工廠工作的 .....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.142.30
推 bloodhell:清晰好文 推 02/28 01:33
推 GuGiBear:推~~~好文~~~ 02/28 03:01
推 abc0:果然是版大! 02/28 05:06
推 Suiten:感謝版大,繼續期待後續。 02/28 08:30
推 MilchFlasche:天哪……感覺好可怕,這是發展趨勢嗎?(用Zire72者問 02/28 09:49
推 chris:推薦好文 02/28 11:23
推 gpc:第二篇完成@@ 02/28 11:51
推 pen0908:請問~~那麼TE2也有這種情形嗎? 03/07 12:51