看板 PDA 關於我們 聯絡資訊
(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