chiark / gitweb /
journal: optimize iteration by returning previously found candidate entry
authorMichal Schmidt <mschmidt@redhat.com>
Wed, 17 Dec 2014 14:07:25 +0000 (15:07 +0100)
committerMichal Schmidt <mschmidt@redhat.com>
Thu, 18 Dec 2014 13:35:30 +0000 (14:35 +0100)
commit7943f42275025e1b6642b580b19b24dfab8dee61
treede4b31ad2a1996ba062c164c8f5197e1f2975e10
parent6e693b42dcb0b332364b0414107826826925c49f
journal: optimize iteration by returning previously found candidate entry

In next_beyond_location() when the JournalFile's location type is
LOCATION_SEEK, it means there's nothing to do, because we already have
the location of the candidate entry. Do an early return. Note that now
next_beyond_location() does not anymore guarantee on return that the
entry is mapped, but previous patches made sure the caller does not
care.

This optimization is at least as good as "journal: optimize iteration:
skip files that cannot improve current candidate entry" was.

Timing results on my workstation, using:
$ time ./journalctl -q --since=2014-06-01 --until=2014-07-01 > /dev/null

Before "Revert "journal: optimize iteration: skip files that cannot
improve current candidate entry":

real    0m5.349s
user    0m5.166s
sys     0m0.181s

Now:

real    0m3.901s
user    0m3.724s
sys     0m0.176s
src/journal/sd-journal.c