只读模式下的 ext4 文件系统对移动设备的性能是否优于 ext2?

Does ext4 filesystem in read-only mode has better performance for mobile devices then ext2?

Android uses ext4 只读分区的文件系统,但我认为闪存只读驱动器 ext2 更合适,因为它没有性能开销并且可以在没有写操作的情况下安全使用。

我说得对吗?

Why does Android use ext4 file system for read-only partitions?

这里不是真正的专家,可能不会给出具体答案,但是,您肯定知道,Android 严重依赖 Linux 并且选择可能是 Linux 决定的。

great work by Jonathan Levin which has lately become free 我强烈建议您熟悉以下内容*:

"Android enforces no constraints as to the filesystem types,但是 eMMC 和 MMC 设备目前使用 Linux Ext4 文件系统(从 Gingerbread 开始,代替旧的 YAFFS 系统),因为存储层导出块设备。自 2.6.27 起,Ext4 已成为 Linux 中的默认文件系统,并且是经过良好测试的文件系统,尽管不一定是闪存优化的文件系统。"


* 第二章->分区方案->文件系统

ext4不使用日志has better表现然后ext2:

                    ext2      ext4, default  ext4, no journal  
initial writes    13.0 MB/s     15.4 MB/s      15.7 MB/s  
rewrites          13.1 MB/s     15.6 MB/s      15.9 MB/s  
reads             15.2 MB/s     16.9 MB/s      17.2 MB/s  
re-reads          15.3 MB/s     16.9 MB/s      17.2 MB/s  
re-reads          15.3 MB/s     16.9 MB/s      17.2 MB/s

我没有真正的答案,但这里有一些可能性。

ext4 即使在只读模式下也比 ext2 有改进,例如使用范围而不是块映射。这节省了元数据开销。

系统分区可以在 root 设备和系统更新期间以读写方式重新挂载(使用两个系统分区进行无缝更新的 Nougat+ 设备除外)。 ext4 通常比 ext2 具有更好的分配行为。

可以使用 -O ^has_journal 创建文件系统,这消除了 ext4 的日志开销。 (请参阅 mkuserimg_mke2fs.sh-j 选项。)

此外,考虑到 ext4 已经用于读写用户分区,我怀疑会有一种避免 ext2 的趋势,只是为了减少不同代码的总量正在 运行(需要测试)。一些端口取消设置 CONFIG_EXT2_FS 以缩小内核。 (ext2 文件系统仍然可以使用 ext4 驱动程序挂载,尽管我不希望这样做。)