Difference between revisions of "External tools/FITS performance"

From Archivematica
Jump to navigation Jump to search
(Began work on JVM startup lag)
 
Line 4: Line 4:
  
 
A simple test of FITS's startup time was performed using the `fits -h` help command; since the help command performs no actual characterization, most of the time of running this command is spent creating a JVM. Results:
 
A simple test of FITS's startup time was performed using the `fits -h` help command; since the help command performs no actual characterization, most of the time of running this command is spent creating a JVM. Results:
 +
 +
== Benchmarks ==
  
 
* Average time without a persistent JVM, averaged over 10 iterations: 4.2852s
 
* Average time without a persistent JVM, averaged over 10 iterations: 4.2852s
 
* Average time with a persistent Nailgun JVM, averaged over 10 iterations: 1.7022s
 
* Average time with a persistent Nailgun JVM, averaged over 10 iterations: 1.7022s
 +
 +
= DROID startup =
 +
 +
The other largest component of FITS startup is the DROID component. The official FITS 0.6.2 uses an older version of DROID, which takes approximately a second to load its signature data at startup. [https://github.com/gmcgath/fits-mcgath Gary McGath's fork of FITS] has been updated to use a more modern version of DROID, substantially improving startup time
 +
 +
== Benchmarks ==
 +
 +
* Average startup time for FITS 0.6.2 (with Nailgun), averaged over 10 iterations: 1.7022s
 +
* Average time for FITS-McGath 0.7.5 (with Nailgun), over 10 iterations: 0.7526s

Revision as of 16:41, 22 August 2013

JVM startup lag

A significant part of FITS's startup is spent instantiating the JVM, which is relatively slow. To speed this up, it may be possible to use the nailgun tool, which creates a single shared JVM instance that a tool can connect to, thus bypassing the overhead of needing to start up a JVM every time FITS is run.

A simple test of FITS's startup time was performed using the `fits -h` help command; since the help command performs no actual characterization, most of the time of running this command is spent creating a JVM. Results:

Benchmarks

  • Average time without a persistent JVM, averaged over 10 iterations: 4.2852s
  • Average time with a persistent Nailgun JVM, averaged over 10 iterations: 1.7022s

DROID startup

The other largest component of FITS startup is the DROID component. The official FITS 0.6.2 uses an older version of DROID, which takes approximately a second to load its signature data at startup. Gary McGath's fork of FITS has been updated to use a more modern version of DROID, substantially improving startup time

Benchmarks

  • Average startup time for FITS 0.6.2 (with Nailgun), averaged over 10 iterations: 1.7022s
  • Average time for FITS-McGath 0.7.5 (with Nailgun), over 10 iterations: 0.7526s