External tools/FITS performance
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:
- 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
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
- 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
Running specialized tools for specific formats
For certain formats which are relatively well-known, such as video formats, audio formats, and images, it may be possible to run individual tools to extract useful characterization metadata. For instance, when profiling video files, it would be useful to run DROID and exiftool (both also run by FITS) as well as mediainfo. Experiments indicate that FITS introduces a major overhead, and significant speed improvements can be had by using running tools directly.
These benchmarks come from a single run of each tool, though later experiments with the tool indicate that they are broadly representative of the tool's average performance.
The scanned MXF video was approximately 4GB.
- DROID alone: 0m4.739s
- exiftool alone: 0m0.167s
- mediainfo alone: 0m3.105s
- FITS 0.6.2: 3m54.016s
The scanned MOV video was approximately 1GB.
- DROID alone: 0m4.920s
- exiftool alone: 0m0.096s
- mediainfo alone: 0m0.276s
- FITS 0.6.2: 3m53.458s