External tools/FITS performance

From Archivematica
Jump to navigation Jump to search

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