android sdcard存儲方案(基於wrapfs文件系統)

轉:http://www.2cto.com/kf/201412/363638.html

一、基於fuse的sdcard存儲方案缺點

android 默認的方案,是基於用戶空間文件系統,最最大的優點是移植性好。

http://en.wikipedia.org/wiki/Filesystem_in_Userspace

\

通過分析android 默認的fuse方案操作流程,如上圖。 我們可以看到其最最大的缺點是:

fuse文件系統和sdcard dameon必需頻繁的進行命令交互、數據交換,

引入內核態和用戶態切換系統開銷。

 

根據前面文章的分析,android用戶數據空間data目錄和用戶sdcard目錄,物理上在emmc中是同一個分區。

而文件系統也採用同一個文件系統:ext4 。 如下圖:

\

 

既然硬件上是emmc的同一個分區/軟件上直接文件系統都是ext4 !那麼問題來啦!

我們是否有理由希望data目錄和sdcard目錄的存儲性能接近呢?

 

這個問題是值得期待的!

但結果是我們期待的嗎?請看測試結果:

加載中...\

data目錄基於ext4性能

\

sdcard目錄基於fuse+ext4性能

 

由以上測試數據,可以看出fuse性能表現是令人失望的!直接導致存儲性能非常大的損耗!

二、基於wrapfs的sdcard存儲方案優點

前面的所有一切、一切都是爲了這一節。

既然前面說了fuse給存儲系統帶來了這麼大損耗,那如何改進呢? 繼續……

基於wrapfs的android sdcard存儲優化方案原理如下圖:

\

 

由圖上,可以看出,wrapfs將上層的請求直接傳遞給了底層ext4文件系統,看起來比fuse簡單多了。
那麼同樣的問題來啦!

我們是否有理由希望data目錄和sdcard目錄的存儲性能無限接近呢?

請看測試結果:

\

data目錄基於ext4性能

 

\

sdcard目錄基於wrapfs+ext4性能

由以上測試數據,可以看出基於wrapfs sdcard存儲性能已經無限接近ext4啦!

 

總結:

android基於fuse sdcard存儲方案,移植性強,但性能差。特別是針對性能好的emmc,性能drop更明顯。

基於wrapfs sdcard存儲方案,性能更強,越好的emmc,表現真好。但需要投入更多人力開發、維護。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章