Performance comparison - Pelagicore/tracker-ivi GitHub Wiki

This page contains rough comparisons of extraction speed between Tracker and Tracker-ivi. It should be noted that many factors have an effect on these numbers, especially since the software is run alongside other software in a Linux system. These numbers are intended to give a rough idea of expected performance improvements in Tracker-ivi.

Description of the host system

In order to carry out these comparisons, a minimal Linux installation was created using Yocto (https://www.yoctoproject.org/) and the Poky Linux distribution. The system contains the bare minimal dependencies required to run Tracker and Tracker-ivi with all multimedia extractors enabled.

The hardware used is a PandaBoard Rev A4, where media files are stored on a 32Gb USB2 Lexar USB drive.

Commands issued

# Launch a new D-Bus session
eval `dbus-launch --sh-syntax`

# Set the directory to index
gsettings set org.freedesktop.Tracker.Miner.Files index-recursive-directories "['/mnt/cf/generated_png']"

# Disable initial sleep
gsettings set org.freedesktop.Tracker.Miner.Files initial-sleep 0

# Mount the USB stick
mount /dev/sda1 /mnt/cf

# Empty the store and terminate any tracker-related processes
tracker-control -r

# Drop memory and disk-related caches
echo 3 > /proc/sys/vm/drop_caches

# Sync any writes queued up for connected storage devices
sync ; sync

# Measure the time required to index the specified directory
time /usr/lib/tracker/tracker-miner-fs -v 0 --no-daemon -d applications

Results

1000 randomly generated, 2.3 megabyte MP3 files, heavy on metadata

Extractor module Run 1 Run 2 Run 3 Run 4 Run 5 Database size
mp3-ivi 18.176 17.792 17.560 18.090 17.060 836 Kb
mp3 32.398 31.231 32.066 31.678 31.585 5880 Kb

1000 replicated, 232Kb MP3 files, less metadata, artist is the same in all files

Extractor module Run 1 Run 2 Run 3 Run 4 Run 5 Database size
mp3-ivi 13.768 13.784 13.755 14.025 14.261 452 Kb
mp3 23.807 23.093 22.734 22.969 23.093 3196 Kb

1000 randomly generated PNG files, 200Kb - 3Mb, heavy on metadata

Extractor module Run 1 Run 2 Run 3 Run 4 Run 5 Database size
png-faster-ivi 14.522 14.443 14.162 13.786 14.037 1388 Kb
png-faster 20.738 20.812 21.035 20.519 21.220 5968 Kb
png 99.078 99.115 98.714 99.051 98.935 6008 Kb

Some comments on these numbers..

The differences in database size between ivi and non-ivi extractors have two causes:

  1. The ivi extractors actually do store less data. This should not make an enormous difference however, since the size metadata contained in a typical file seldom exceeds 1Kb, and only some fields are skipped, while the majority is included.
  2. The multimedia ontologies have been replaced by the ivi ontology (see Stripped ontologies), which is non-hierarchical and uses the simplest data types possible.

The difference in running time between png and png-faster is due to the fact that the png extractor needs to read and discard all image data, which is slow over USB2. This is due to a design choice in the PNG library used. png-faster skips over the bulk of the PNG file, thereby transferring less data.

The overall difference in speed between ivi and non-ivi extractors is due to the ivi ontologies being much simpler (which makes them less extensible and less interoperable, but this is fine for our purposes).