臨近年末,手機(jī)界無論大小廠商紛紛炸出自己王牌機(jī)型,在這個(gè)收官大戰(zhàn)中,華為無疑是一家戰(zhàn)果累累的公司,前面三星Note7不幸夭折,蘋果公司今年新品創(chuàng)新不足,后面又無與之分庭抗禮的通訊大咖,一時(shí)間華為今年的年度新品Mate9成了消費(fèi)者嚴(yán)重的年度超新星,賺盡了無數(shù)用戶的眼球,尤其是華為移動(dòng)部門老大余承東在新品發(fā)布會(huì)上宣稱Mate9手機(jī)至少保持使用18個(gè)月不卡,簡(jiǎn)直就像突然丟出一張王炸,讓所有關(guān)注移動(dòng)市場(chǎng)的用戶大吃兩三驚。
華為Mate9手機(jī)所謂的18個(gè)月使用不卡肯定是集結(jié)了很多不同的先進(jìn)技術(shù),但是值得一提的是,其中使用了一項(xiàng)關(guān)于f2fs技術(shù),并非華為Mate9首發(fā),早在幾年前就已經(jīng)有手機(jī)用上這一技術(shù),而且對(duì)于一些愛鉆研的手機(jī)發(fā)燒友們,也早早嘗鮮了這中技術(shù),那這到底是怎樣的一項(xiàng)技術(shù)呢?接下來本文將做一個(gè)簡(jiǎn)單的介紹,幫助讀者更好的了解關(guān)于f2fs的知識(shí)。
F2FS文件系統(tǒng)是什么?
簡(jiǎn)單來說,f2fs是一種較先進(jìn)的文件系統(tǒng),與手機(jī)上的ext4文件系統(tǒng)、電腦上的ntfs文件系統(tǒng)一樣,f2fs是Flash Friendly File System的簡(jiǎn)稱。該文件系統(tǒng)是由韓國(guó)三星電子公司研發(fā),只提供給運(yùn)行Linux內(nèi)核的系統(tǒng)使用,所以安卓手機(jī)上肯定也是能夠使用的。
從f2fs中的Flash Friendly可以看出,這種文件系統(tǒng)對(duì)于閃存類存儲(chǔ)介質(zhì)是非常友好的,特別是NAND這種較新的介質(zhì),f2fs提供了更加適應(yīng)新介質(zhì)的文件系統(tǒng)方案,同時(shí)還修復(fù)了以往舊日志結(jié)構(gòu)文件系統(tǒng)的一些問題,使其在新存儲(chǔ)介質(zhì)下具備了更有利的使用條件,特別是在小文件數(shù)據(jù)傳輸方面。
f2fs文件系統(tǒng)讀寫流程圖
如之前所述,f2fs文件系統(tǒng)修復(fù)了舊日志的一些結(jié)構(gòu)問題,從代碼結(jié)構(gòu)上進(jìn)行了二次優(yōu)化,使其在能夠在底層更加快速的索引到目標(biāo)數(shù)據(jù),簡(jiǎn)單來說就是小文件數(shù)據(jù)傳輸變快了,這是f2fs文件系統(tǒng)的優(yōu)勢(shì),但是在代碼結(jié)構(gòu)上f2fs文件系統(tǒng)同樣存在一些問題,譬如空間浪費(fèi)的問題和作為較新的文件系統(tǒng)兼容性問題,這一點(diǎn)會(huì)在接下來的測(cè)試數(shù)據(jù)進(jìn)行說明。
目前移動(dòng)市場(chǎng)中,手機(jī)存儲(chǔ)的文件系統(tǒng)大多采用ext4格式,雖然早在2013年Moto手機(jī)就率先推出了采用f2fs文件系統(tǒng)的Moto X手機(jī),由于種種原因,這款手機(jī)中采用的較為先進(jìn)的f2fs文件系統(tǒng)并沒有在市場(chǎng)上掀起太大的波瀾,反而被埋沒在茫茫機(jī)海之中。
對(duì)于Moto X手機(jī)中采用的f2fs文件系統(tǒng),國(guó)外網(wǎng)站AnandTech當(dāng)時(shí)就有相對(duì)應(yīng)的評(píng)測(cè),雖然結(jié)果差強(qiáng)人意,但該評(píng)測(cè)中并沒有很直觀的對(duì)比出同樣手機(jī)在ext4文件系統(tǒng)下和f2fs文件系統(tǒng)下的區(qū)別,所以筆者接下來將會(huì)以單部手機(jī)為例,在兩種不同的文件系統(tǒng)下,分別對(duì)手機(jī)的存儲(chǔ)性能做出實(shí)際的測(cè)試結(jié)果對(duì)比,觀察在兩種不同的文件系統(tǒng)下,哪些存儲(chǔ)性能發(fā)生了變化。
F2FS文件系統(tǒng)下實(shí)際手機(jī)測(cè)試
筆者首先是以一直被公認(rèn)為是刷機(jī)小丸子的一加1手機(jī)測(cè)試,測(cè)試內(nèi)容是讓同一部手機(jī)在ext4和f2fs兩種不同的文件系統(tǒng)下,進(jìn)行androbench軟件的數(shù)據(jù)測(cè)試,兩種環(huán)境下手機(jī)均是空盤情況下刷入CM14.1(安卓7.1)系統(tǒng),閃存內(nèi)沒有多余的文件。測(cè)試對(duì)比如下:
一加1:左ext4、右f2fs
根據(jù)閃存讀寫性能測(cè)試軟件的數(shù)據(jù)可以看出,在ext4和f2fs兩種文件系統(tǒng)下,手機(jī)閃存的連續(xù)讀寫性能并沒有太大的變化,但是經(jīng)過比對(duì)可以看到,兩種不同的文件系統(tǒng)在同一部手機(jī)下的隨機(jī)讀寫性能,也就是4K文件的隨機(jī)讀寫發(fā)生了令人驚奇的變化,特別是在隨機(jī)寫入性能中,f2fs文件系統(tǒng)的提升可以說是飛躍式的巨變,從數(shù)據(jù)中也可以很直觀的反映出閃存的隨機(jī)寫入性能提升了不止一倍之多;而在隨機(jī)讀取性能方面,f2fs文件系統(tǒng)相比EXT4文件系統(tǒng)也有相當(dāng)?shù)膬?yōu)勢(shì),從測(cè)量得出的數(shù)據(jù)可以知道,較為優(yōu)越的f2fs文件系統(tǒng)的隨機(jī)讀取性能提升了25%左右。
為了測(cè)試f2fs文件系統(tǒng)相比ext4文件系統(tǒng)在閃存隨機(jī)讀寫性能上的巨大提升的普遍性,筆者在對(duì)比中又加入了過氣旗艦三星Galaxy S5手機(jī)和當(dāng)下炙手可熱手機(jī)一加3的測(cè)試,令人驚奇的是,在兩款附加手機(jī)的測(cè)試中,經(jīng)過幾輪測(cè)試得出的數(shù)據(jù)均表明,兩種文件系統(tǒng)的隨機(jī)讀取性能并沒有與之前一加1手機(jī)測(cè)試中類似的提升,甚至略有下降(不會(huì)相差太遠(yuǎn)),但是在隨機(jī)寫入性能的測(cè)試中,f2fs文件系統(tǒng)下三星S5和一加3手機(jī)確實(shí)有著非常兇猛的優(yōu)勢(shì),特別是在一加3手機(jī)中,隨機(jī)寫入速度的提升可以說是超乎想象。這也就很明顯的說明了相較于傳統(tǒng)的ext4文件系統(tǒng),f2fs文件系統(tǒng)在小文件隨機(jī)寫入性能中有非常大的優(yōu)勢(shì),而且這種優(yōu)勢(shì)具有普遍性,但是隨機(jī)讀取性能的變化基本不大。
三星S5:左ext4、右f2fs
一加3:左ext4、右f2fs
測(cè)試中發(fā)現(xiàn)F2FS文件系統(tǒng)的一些不足
在測(cè)試的過程中,對(duì)比ext4文件系統(tǒng)和f2fs文件系統(tǒng),筆者還有個(gè)意外發(fā)現(xiàn),那就是經(jīng)過幾次轉(zhuǎn)換文件系統(tǒng)之后,相同的安卓ROM包,在f2fs文件系統(tǒng)下占用閃存的容量會(huì)多一些。帶著f2fs文件系統(tǒng)下為什么會(huì)占用空間容量較高的疑問,筆者查閱了相關(guān)的資料。
根據(jù)f2fs文件系統(tǒng)相關(guān)函數(shù)的定義,在每一個(gè)文件索引節(jié)點(diǎn)塊中包含了f2fs_inode和node_footer兩部分,其中f2fs_inode結(jié)構(gòu)中的數(shù)據(jù)索引區(qū)又存在923個(gè)數(shù)據(jù)塊指針,每個(gè)指針對(duì)應(yīng)一個(gè)大小為4KB的數(shù)據(jù)塊,但是在通常情況下系統(tǒng)文件索引并不需要用到所有數(shù)據(jù)塊,在最極端情況下文件大小為4KB時(shí),只需要用到一個(gè)數(shù)據(jù)塊,剩下的數(shù)據(jù)塊則處于閑置狀態(tài),這就造成了存儲(chǔ)容量在一定程度上的空間浪費(fèi),也就是筆者所遇到的同樣一部手機(jī),在相同的安卓系統(tǒng)中,f2fs文件系統(tǒng)下,閃存容量的占用會(huì)相對(duì)高一些。
在f2fs文件系統(tǒng)下會(huì)造成空間浪費(fèi)的問題不僅會(huì)影響用戶數(shù)據(jù)存儲(chǔ)空間,而且緩存cache區(qū)也會(huì)受到一定影響,一般來說安卓手機(jī)的緩存池設(shè)置的可用空間都是比較小的,在空間浪費(fèi)的情況下會(huì)在一定程度上造成緩存裕量不夠,進(jìn)而使得軟件在使用的過程中無故崩潰,而且f2fs作為一種新型的文件系統(tǒng),也會(huì)有部分軟件在使用中出現(xiàn)不兼容現(xiàn)象等等,不過根據(jù)筆者體驗(yàn)至今的感受,只有少數(shù)軟件會(huì)出現(xiàn)崩潰情況。
可以看到在空盤刷入僅為700M不到的系統(tǒng)下,在data分區(qū)下f2fs的數(shù)據(jù)占用更多
F2FS文件系統(tǒng)測(cè)試總結(jié)
最后簡(jiǎn)單講講從ext4文件系統(tǒng)轉(zhuǎn)到f2fs文件系統(tǒng)的使用體驗(yàn),在筆者拖稿兩周時(shí)間里,f2fs文件系統(tǒng)下手機(jī)確實(shí)是快了很多,尤其安裝軟件以及重啟設(shè)備的時(shí)候,由于隨機(jī)寫入的性能大大提升了,在類似軟件安裝和系統(tǒng)重啟中,需要大量寫入小文件的情況下,f2fs文件系統(tǒng)下有非常喜人的變化,而在日常使用中也可以明顯感受到整體的數(shù)據(jù)交換快速了許多。
前面說的是性能提升的一方面,但是f2fs文件系統(tǒng)依舊有些不足,譬如磁盤空間浪費(fèi)問題、新文件系統(tǒng)下可能出現(xiàn)兼容性問題等等,在筆者測(cè)試的過程中,也出現(xiàn)了一些軟件安裝錯(cuò)誤的問題(如嗶哩嗶哩客戶端),考慮到手機(jī)的測(cè)試環(huán)境是最新的CM14.1系統(tǒng),懷疑是軟件調(diào)用的API過于老舊的問題,但也不排除是f2fs文件系統(tǒng)的兼容性問題。
在筆者看來,f2fs文件系統(tǒng)總歸是利大于弊的,特別是在小文件的讀寫方面有巨大優(yōu)勢(shì),這對(duì)手機(jī)本身讀寫性能有舉足輕重的幫助,特別是現(xiàn)在國(guó)內(nèi)大廠華為公司乘著Mate9的新機(jī)潮宣傳了使用18個(gè)月手機(jī)使用不卡的優(yōu)勢(shì),相信f2fs文件系統(tǒng)很快會(huì)擴(kuò)散開來,這也會(huì)是以后手機(jī)存儲(chǔ)文件系統(tǒng)的大趨勢(shì)。
目前筆者發(fā)現(xiàn),在一加手機(jī)最新的氫OS2.5底包中,已經(jīng)有相關(guān)的格式化選項(xiàng)可以把手機(jī)文件系統(tǒng)轉(zhuǎn)換成f2fs,現(xiàn)在的f2fs文件系統(tǒng)雖然或多或少有點(diǎn)小問題,但是已經(jīng)可以正常使用,而且部分內(nèi)部工程師也透露已經(jīng)加緊對(duì)f2fs文件系統(tǒng)的刷機(jī)包進(jìn)行開發(fā)和手機(jī)的適配,以后的f2fs文件系統(tǒng)將不再新鮮。
如何才能體驗(yàn)F2FS文件系統(tǒng)
目前在CM提供支持的手機(jī)中,只要是CM13以上的系統(tǒng)均支持f2fs文件系統(tǒng),而在OEM廠商定制的系統(tǒng)中,大部分的基于安卓7.0系統(tǒng)的手機(jī)也支持f2fs文件系統(tǒng),對(duì)于一些舊設(shè)備想要體驗(yàn)f2fs文件系統(tǒng)的話,大致可以通過兩種方式,一種是通過最新的TWRP recovery將手機(jī)轉(zhuǎn)換為f2fs文件系統(tǒng),另一種方法則是通過ADB Shell的方式將手機(jī)的文件系統(tǒng)轉(zhuǎn)換為f2fs文件系統(tǒng)。因?yàn)橥ㄟ^ADB shell的方式操作較為繁瑣,這里簡(jiǎn)單介紹下通過TWRP recovery的方式對(duì)手機(jī)進(jìn)行轉(zhuǎn)換。
首先確認(rèn)你的手機(jī)有對(duì)應(yīng)的3.0版本以上TWRP recovery刷機(jī)包并刷入設(shè)備,重啟進(jìn)入TWRP recovery,點(diǎn)擊“清除”,再進(jìn)入“高級(jí)清除菜單”,選擇需要轉(zhuǎn)換的分區(qū)進(jìn)行文件系統(tǒng)轉(zhuǎn)換,此處轉(zhuǎn)換“Cache”和“data”分區(qū),系文件系統(tǒng)轉(zhuǎn)換之后會(huì)清除所有文件,所以操作之前請(qǐng)注意備份。
成功轉(zhuǎn)換文件系統(tǒng)之后,重新回到TWRY recovery界面,點(diǎn)擊“掛載”,從電腦端將支持f2fs文件系統(tǒng)的ROM包傳到手機(jī)進(jìn)行卡刷,之后的步驟基本和普通的卡刷系統(tǒng)基本一致。
評(píng)論