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 were run as described in the Programmer's guide.
| JVM | Results |
| 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)* |
| JVM | Results |
| 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 SR9 | OK (5/6)* |
| IBM J9 JVM build 2.4 1.6.0 SR3 | OK (6/7)* |
| JVM | Results |
| Sun JDK 1.5.0_17 (64 bit) | OK (6/6) |
| Sun JDK 1.6.0_12 (64 bit) | OK (7/7) |
| JVM | Results |
| Sun JDK 1.5.0_17 (64 bit) | OK (6/6) |
| Sun JDK 1.6.0_12 (64 bit) | OK (7/7) |
| JVM | Results |
| Sun JDK 1.5.0_17 | OK (6/6) |
| Sun JDK 1.6.0_11 | OK (7/7) |
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:
$JAVA_HOME – pointed to a 64 bit JDK 1.6.0_12 installation.$CLASSPATH – a class path including all Jar files in the
At4J distribution's lib directory.gzip compress a Tar archive containing the source code for the Linux kernel. The uncompressed size of the archive is 310292480 bytes.
Command lines:
gzip command:$ time gzip linux-2.6.28.3.tar$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.gzip.prog.GZip linux-2.6.28.3.tar| Command | Resulting file size | Average time | Compared with native |
gzip | 67403810 bytes | 13.9s | - |
org.at4j.comp.gzip.prog.GZip | 67382120 bytes | 17.2s | 124% |
Uncompress a gzip compressed Tar archive containing the source code for the Linux kernel.
Command lines:
gunzip command:
$ time gunzip linux-2.6.28.3.tar.gz$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.gzip.prog.GUnzip linux-2.6.28.3.tar.gz| Command | Average time | Compared with native |
gunzip | 2.5s | - |
org.at4j.comp.gzip.prog.GUnzip | 3.1s | 124% |
bzip2 compress a Tar archive containing the source code for the Linux kernel. The uncompressed size of the archive is 310292480 bytes.
Command lines:
bzip2 command:$ time bzip2 linux-2.6.28.3.tar$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.bzip2.prog.BZip2 linux-2.6.28.3.tar| Command | Resulting file size | Average time | Compared with native |
bzip2 | 52703558 bytes | 39.6s | - |
org.at4j.comp.bzip2.prog.BZip2 | 52726525 bytes | 69.3s | 175% |
Uncompress a bzip2 compressed Tar archive containing the source code for the Linux kernel.
Command lines:
bunzip2 command:
$ time bunzip2 linux-2.6.28.3.tar.bz2$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.bzip2.prog.BUnzip2 linux-2.6.28.3.tar.bz2| Command | Average time | Compared with native |
bunzip2 | 9.3s | - |
org.at4j.comp.bzip2.prog.BUnzip2 | 16.1s | 173% |
LZMA compress a Tar archive containing the source code for the Linux kernel. The uncompressed size of the archive is 310292480 bytes.
Command lines:
lzma command:$ time lzma linux-2.6.28.3.tar$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.lzma.prog.Lzma linux-2.6.28.3.tar| Command | Resulting file size | Average time | Compared with native |
lzma | 45029877 bytes | 201.6s | - |
org.at4j.comp.lzma.prog.Lzma | 46833567 bytes | 235.1s | 117% |
Uncompress a LZMA compressed Tar archive containing the source code for the Linux kernel.
Command lines:
unlzma command:
$ time unlzma linux-2.6.28.3.tar.lzma$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.comp.lzma.prog.UnLzma linux-2.6.28.3.tar.lzma| Command | Average time | Compared with native |
unlzma | 4.8s | - |
org.at4j.comp.lzma.prog.UnLzma | 9.8s | 203% |
Create a Tar archive containing the source code for the Linux kernel.
Command lines:
tar command:$ time tar cf linux-2.6.28.3.tar linux-2.6.28.3/$ 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/| Command | Average time | Compared with native |
tar cf | 5.4s | - |
org.at4j.tar.prog.Tar cf | 6.3s | 117% |
Unpack a Tar archive containing the source code for the Linux kernel.
Command lines:
tar command:
$ time tar xf linux-2.6.28.3.tar$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.tar.prog.Tar xf linux-2.6.28.3.tar| Command | Average time | Compared with native |
tar xf | 50.9s | - |
org.at4j.tar.prog.Tar xf | 60.2s | 118% |
Create a Zip archive containing the source code for the Linux kernel.
Command lines:
zip command:$ time zip -q -r linux-2.6.28.3.zip linux-2.6.28.3/$ 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/| Command | Resulting file size | Average time | Compared with native |
zip | 83876474 bytes | 17.4s | - |
org.at4j.zip.prog.Zip | 83005276 bytes | 28.1s | 161% |
Unpack a Zip archive containing the source code for the Linux kernel.
Command lines:
unzip command:
$ time unzip -q linux-2.6.28.3.zip$ time $JAVA_HOME/bin/java -cp $CLASSPATH dr.org.at4j.zip.prog.Unzip -q linux-2.6.28.3.zip| Command | Average time | Compared with native |
unzip | 48.4s | - |
org.at4j.zip.prog.Unzip | 75.1s | 155% |