At4J 1.0 test report

2009.02.07
Karl Gustafsson

Unit tests
  64 bit Linux
  32 bit Linux
  64 bit Solaris 10
  64 bit Windows Vista
  32 bit Windows Vista

Unit tests

Unit tests were run as described in the Programmer's guide.

64 bit Linux

OS:
Xubuntu 8.10 64 bit, Linux 2.6.27-11-generic SMP
File system:
xfs
Hardware:
Intel Core 2 Quad Q9550 @ 2.83GHz
8192 Mb RAM
Western Digital Raptor (3.5", 10,000 RPM, SATA)

JVMResults
Sun JDK 1.5.0_17 (64 bit)OK (6/6)
Sun JDK 1.6.0_12 (64 bit)OK (7/7)
IBM J9 JVM build 2.3 1.5.0 SR9 (64 bit)OK (5/6)*
IBM J9 JVM build 2.4 1.6.0 SR3 (64 bit)OK (6/7)*
* The LZMA test suite failed with an OutOfMemoryError. According to the dump, something inside LZMA wanted to allocate 1.7Gb of memory. At the time, the old space memory area was almost full (512Mb).



32 bit Linux

OS:
SUSE Linux Enterprise Desktop 10, Linux 2.6.16.27-0.9-default
File system:
Ext3
Hardware:
Intel Pentium M 2.0 GHz stepping 08
2048 Mb RAM
Hitachi HTE726060M9AT00 (2.5", 7,200 RPM, ATA)

JVMResults
Sun JDK 1.5.0_17 (6/6)
Sun JDK 1.6.0_12 (7/7)
IBM J9 JVM build 2.3 1.5.0 SR9OK (5/6)*
IBM J9 JVM build 2.4 1.6.0 SR3OK (6/7)*
* The LZMA test suite failed with an OutOfMemoryError.



64 bit Solaris 10

OS:
Solaris 10 10/08
File system:
UFS
Hardware:
Intel Xeon E5420 @ 2.5GHz
8192 Mb RAM
RAID 10 array

JVMResults
Sun JDK 1.5.0_17 (64 bit)OK (6/6)
Sun JDK 1.6.0_12 (64 bit)OK (7/7)



64 bit Windows Vista

OS:
Windows Vista Business 64bit
File system:
NTFS
Hardware:
Intel Core 2 Duo T7500 @ 2.2GHz
4096 Mb RAM
Seagate ST9160823AS (2.5", 7,200 RPM, SATA)

JVMResults
Sun JDK 1.5.0_17 (64 bit)OK (6/6)
Sun JDK 1.6.0_12 (64 bit)OK (7/7)



32 bit Windows Vista

OS:
Windows Vista Enterprise
File system:
NTFS
Hardware:
Intel Core2 Duo U7600 @ 1.2GHz
2048 Mb RAM
Toshiba MK1011GAH (1.8", 4,200 RPM, ATA)

JVMResults
Sun JDK 1.5.0_17OK (6/6)
Sun JDK 1.6.0_11OK (7/7)



Performance tests

Performance tests were run as documented below on the files from the Linux kernel, version 2.6.28.3. Each test is run five times, and the average time is calculated. At4J's times are compared with the time it takes to complete the same operation using a command-line tool.

The tests were run on a quad-core machine running XUbuntu 8.10. A lot of other programs were running simultaneously, so the measurements given are by no means optimal times.

The following environment variables were set:


gzip

gzip compress a Tar archive containing the source code for the Linux kernel. The uncompressed size of the archive is 310292480 bytes.

Command lines:

Using the gzip command:
$ time gzip linux-2.6.28.3.tar
Using the org.at4j.comp.gzip.prog.GZip class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.gzip.prog.GZip linux-2.6.28.3.tar

CommandResulting file sizeAverage timeCompared with native
gzip67403810 bytes13.9s-
org.at4j.comp.gzip.prog.GZip67382120 bytes17.2s124%

Uncompress a gzip compressed Tar archive containing the source code for the Linux kernel.

Command lines:

Using the gunzip command:
$ time gunzip linux-2.6.28.3.tar.gz
Using the org.at4j.comp.gzip.prog.GUnzip class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.gzip.prog.GUnzip linux-2.6.28.3.tar.gz

CommandAverage timeCompared with native
gunzip2.5s-
org.at4j.comp.gzip.prog.GUnzip3.1s124%

bzip2

bzip2 compress a Tar archive containing the source code for the Linux kernel. The uncompressed size of the archive is 310292480 bytes.

Command lines:

Using the bzip2 command:
$ time bzip2 linux-2.6.28.3.tar
Using the org.at4j.comp.bzip2.prog.BZip2 class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.bzip2.prog.BZip2 linux-2.6.28.3.tar

CommandResulting file sizeAverage timeCompared with native
bzip252703558 bytes39.6s-
org.at4j.comp.bzip2.prog.BZip252726525 bytes69.3s175%

Uncompress a bzip2 compressed Tar archive containing the source code for the Linux kernel.

Command lines:

Using the bunzip2 command:
$ time bunzip2 linux-2.6.28.3.tar.bz2
Using the org.at4j.comp.bzip2.prog.BUnzip2 class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.bzip2.prog.BUnzip2 linux-2.6.28.3.tar.bz2

CommandAverage timeCompared with native
bunzip29.3s-
org.at4j.comp.bzip2.prog.BUnzip216.1s173%

LZMA

LZMA compress a Tar archive containing the source code for the Linux kernel. The uncompressed size of the archive is 310292480 bytes.

Command lines:

Using the lzma command:
$ time lzma linux-2.6.28.3.tar
Using the org.at4j.comp.lzma.prog.Lzma class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.lzma.prog.Lzma linux-2.6.28.3.tar

CommandResulting file sizeAverage timeCompared with native
lzma45029877 bytes201.6s-
org.at4j.comp.lzma.prog.Lzma46833567 bytes235.1s117%

Uncompress a LZMA compressed Tar archive containing the source code for the Linux kernel.

Command lines:

Using the unlzma command:
$ time unlzma linux-2.6.28.3.tar.lzma
Using the org.at4j.comp.lzma.prog.UnLzma class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.lzma.prog.UnLzma linux-2.6.28.3.tar.lzma

CommandAverage timeCompared with native
unlzma4.8s-
org.at4j.comp.lzma.prog.UnLzma9.8s203%

Tar

Create a Tar archive containing the source code for the Linux kernel.

Command lines:

Using the tar command:
$ time tar cf linux-2.6.28.3.tar linux-2.6.28.3/
Using the org.at4j.tar.prog.Tar class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.tar.prog.Tar cf linux-2.6.28.3.tar linux-2.6.28.3/

CommandAverage timeCompared with native
tar cf5.4s-
org.at4j.tar.prog.Tar cf6.3s117%

Unpack a Tar archive containing the source code for the Linux kernel.

Command lines:

Using the tar command:
$ time tar xf linux-2.6.28.3.tar
Using the org.at4j.tar.prog.Tar class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.tar.prog.Tar xf linux-2.6.28.3.tar

CommandAverage timeCompared with native
tar xf50.9s-
org.at4j.tar.prog.Tar xf60.2s118%

Zip

Create a Zip archive containing the source code for the Linux kernel.

Command lines:

Using the zip command:
$ time zip -q -r linux-2.6.28.3.zip linux-2.6.28.3/
Using the org.at4j.zip.prog.Zip class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.zip.prog.Zip -r linux-2.6.28.3.zip linux-2.6.28.3/

CommandResulting file sizeAverage timeCompared with native
zip83876474 bytes17.4s-
org.at4j.zip.prog.Zip83005276 bytes28.1s161%

Unpack a Zip archive containing the source code for the Linux kernel.

Command lines:

Using the unzip command:
$ time unzip -q linux-2.6.28.3.zip
Using the org.at4j.zip.prog.Unzip class:
$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.zip.prog.Unzip -q linux-2.6.28.3.zip

CommandAverage timeCompared with native
unzip48.4s-
org.at4j.zip.prog.Unzip75.1s155%