Product
  Service
 

 

     CompactFS is not a File System, it's a compact driving layer. By inserting this layer into file system and block device driver, we can let the original file system be a "compact fs". Using CompactFS will slow down the system, the lost of performance will be 5 to 10 percent. But this is worth to embeded systems, which have not large flash rom.

 

Here is the compare of CompactFS and JFFS2
compact fs
jffs2
comment
Compact ratio
same
they all use glib compact arithmetic
Performance
compact fs is better than jffs2
jffs2 compact the data whenever writes file,compact fs only do it when flush system disk cache into
Mount speed
quick
slow
Suitable for flash?
yes
yes
blocks of flash rom needs to be used averagely
Error recover
do by fschk
on mount time
this is the reason why jffs2 mount slowly
Portability
good
worse
check compact ratio of a file?
can
compact a file
can
cannot

 

Here is the typical compact ratio
catalogue
original size
zipped size
ratio
text
22M
5M
22.7%
24bit bmp
480K
195K
40.6%
exe
1M
0.3M
33%

 

  Here is the result testing under Linux CPU 55MHz MIPS Samsung NAND Flash.

    # iozone IOZONE:
Performance Test of Sequential File I/O -- V2.01 (10/21/94) By Bill Norcott
Operating System: POSIX 1003.1-1990
Usage: iozone [megabytes] [record_length_in_bytes] [[path]filename]
iozone auto[=filename]
iozone raw[=filename]
iozone cdrom[=filename]
iozone help
Send comments to: b_norcott@xway.com
IOZONE writes a 1 Megabyte sequential file consisting of 2048 records which are each 512 bytes in length. It then reads the file. It prints the bytes-per-second rate at which the computer can read and write files.
Writing the 1 Megabyte file, 'iozone.tmp'...1.670000 seconds
Reading the file...0.550000 seconds
IOZONE performance measurements:
627889 bytes/second for writing the file
1906501 bytes/second for reading the file

     # bonnie
File './Bonnie.28', size: 1048576
Writing with putc()...done
Rewriting...done
Writing intelligently...done
Reading with getc()...done
Reading intelligently...done
Seeker 1...Seeker 3...Seeker 2...start 'em...
done...
done...
done...
-------Sequential Output-------- ---Sequential Input-- --Random--
-Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU
1 188 48.5 431 35.8 290 28.4 414 100.0 6077 100.9 326.7 589
    #