瀏覽單個文章
nkaf61
Basic Member
 

加入日期: Apr 2007
文章: 22
以下假設大大了解cache 及其命中率相關問題

Buffer 沒有命中率
這個其實是關於作業系統的名詞解釋
大致上來說 CPU 的處理速度 比記憶體快很多 記憶體又比I/O(硬碟)快很多
CPU 若要寫資料到硬碟上 必須要等 I/O慢慢來
譬如CPU每秒可以產生1000個資料要硬碟來寫入
但是硬碟每秒只能處理1個資料的寫入
如果CPU直接寫資料到硬碟上的話 當CPU在 某一秒內 產生了1個資料
然後硬碟就開始寫 但是以CPU的速度其實還可以產生999個資料
不過硬碟來不急寫入 如此就算CPU還可以產生999個資料也沒用
CPU必須等硬碟寫完那第一個資料才能繼續產生下一筆資料
那這樣來講 CPU有百分之 99.9的時間都浪費在等硬碟上
於是CPU退而求其次
先將剩下的999個資料寫在Buffer(記憶體)上
然後就去做其他事情
硬碟等到寫完第一個資料之後 會發現它的buffer上面有999個資料(囧...)
然後就很認命的乖乖的把buffer上的資料繼續慢慢的寫到自己身上...

以上是簡便的例子
其實之間還忽略了不少問題 而且單純以寫入 並無提到讀取當例子
但是應該足夠解釋 沒有命中率這個問題了 XD

如果大大是資工或電機相關科系的 有好好上學應該是學過的吧

但是並不能因此說Buffer的應用跟演算法無關
其實在下還是認為演算法絕對有關係
如果觀察力比較好的大大應該可以從上面那個例子裡面察覺到後面隱藏更多的問題
這些問題若沒有一個有效率的演算法來解決
就算空有肥大的buffer卻無法好好應用也是枉然吧?
舊 2008-02-23, 08:12 PM #26
回應時引用此文章
nkaf61離線中