相信很多寫程式的開發者,常常都會需要存取資料,如果有在注意程式的執行效能,很容易會發現大量的檔案I/O讀寫會影響整體的運算速度,因此有的開發者就會嘗試使用一些改進的方式來加快讀寫的速度,比如Fortran開發者會用Binary I/O加上RECL的方式,C++開發者或許會採用Windows API來加快讀取大型檔案所花費的時間,但是這些方式總是有其侷限在,因為最主要的問題在於硬碟的讀取效率本來就比主記憶體的存取慢許多倍以上。

硬體的問題最簡單的方式是從改善硬體著手,以下列幾個最近在網路上找到的相關介紹。

目前最貴的做法

目前看到最貴的方式是在電腦上插一張PCI的擴充卡,然後在擴充卡上插滿記憶體模組,比如技嘉i-RAM(i-RAM測試報告)就是這樣性質的產品,號稱可以比SATA硬碟快上16倍,因為它的做法就是用記憶體模組來模擬成一個硬碟,所以存取的瓶頸只會在於系統匯流排的頻寬,不像硬碟需要定位讀取頭需要浪費掉額外的時間,因此速度一定是比硬碟還要快上許多,不過這樣的做法成本很高,而且存取空間有限,適合用在重複讀取小檔案的情況,比如網頁伺服器。

使用快閃硬碟來加快存取速度

快閃硬碟其實就是用快閃記憶體組奘成的硬碟,好處是可以比傳統硬碟讀取速度快,而且省電與防震,所以適合用來保存大量讀寫的資料,比如像資料庫等應用,我覺得快閃硬碟最大的好處是資料保存年限,比起傳統硬碟好上許多,不過現階段價格也很高昂,可以參考SanDisk剛推出的1.832GB的快閃硬碟,一顆要價600美金(CNet的報導)

混合式硬碟的發展

最近硬碟大廠的發展趨勢是研發混合式硬碟,所謂的混合是組合快閃記憶體與傳統硬碟的設計,這樣的設計好處在於一方面顧及了傳統硬碟的價格低廉,以及快閃記憶體的高速存取,這個趨勢的帶動和Windows Vista的上市也有關係,因為新款的Vista支援這種混合式硬碟的設計,可以將常用到的資料先放於快閃記憶體裡,而不用每次都到碟片上存取,介於傳統硬碟與前段提到的快閃硬碟之間,不過這種產品還需要經過一段時間的發展才能上市(參考OC的介紹)

 藉由這些未來硬體的問世,可以預見以往的硬碟讀取瓶頸會越來越小,這也就代表程式開發者寫出來的程式速度,在不用改程式的前提下可以得到更大的提升。