2009-08-22 7 views
9

1000バイトのファイルを300バイトのファイルに圧縮するのは価値がありますか?またはファイルシステムのスペース消費量は同じになるでしょうか?iphoneファイルシステムのブロックサイズはどのくらいですか?

私のiPhoneに4k未満のファイルを10k保存するのを見ていて、それらを圧縮して省スペースを見れば不思議です。

はありがとう、

カール

+0

をiPhoneは8GB +を持っていますあなたのファイルのためのスペース。あなたが実際に保存するいくつかの追加のKBがあなたに何か利益を与えるだろうと本当に思いますか? – RaYell

+1

必ずしも常にスペース上の問題ではありません。ファイルシステムの中には、格納されたファイルがブロックとどのように整列するか、ファイルシステムが末尾のパッキングを実行するかどうかによって、パフォーマンスが良くなるか悪化するものがあります。特に10k +ファイルの場合、ファイルシステムが正しく構成されていれば、1ファイルあたりの潜在的な小規模な節約量はかなり早くなります。 – Tim

+0

質問に答えてあなたの経験を共有してみませんか? –

答えて

16

iPhoneは、ユーザーパーティション上の8kのブロックサイズで、HFSXファイルシステムを使用しています。

int main(int argc, char *argv[]) { 
    struct statfs *mntbufp = NULL; 
    getmntinfo(&mntbufp, 0); 

    unsigned i, count = 0; 

    count = getmntinfo(&mntbufp, 0); 
    for (i=0; i<count; i++) 
    { 
    char *volName = mntbufp[i].f_mntonname; 
    printf("Volume %s blocksize: %lu\n", volName, mntbufp[i].f_bsize); 
    } 

    return 0; 
} 

戻り

Volume/blocksize: 8192 
Volume /dev blocksize: 512 
Volume /private/var blocksize: 8192 
Volume /Developer blocksize: 4096 
+0

正確に何を探していますが、コンパイルエラーが発生する: 'struct statfs'の定義は、必要な前に 'Darwin.sys.mount'からインポートする必要があります。 – horseshoe7

+0

追加#include hailuodev

関連する問題