[PATCH 0/8] fast-import: cache oe more often
- From
Dmitry Ivankov <divanorama@gmail.com>
- Date
- Sep 19, 2011, 01:27 UTC
- Message-ID
- <1316395657-6991-1-git-send-email-divanorama@gmail.com>
fast-import keeps a struct object_entry for each object written to it's pack. This is to keep type, pack-coordinates and delta_depth. struct object_entry is also used to cache this metadata for objects that exist outside fast-import's pack ('old' objects). struct object_entry has a small fixed size and thus it should be reasonable to cache any 'old' object metadata retrieval to save the disk i/o.
Also it is a step toward making fast-import identify objects via struct object_entry rather than sha1. One pointer takes less than 20 bytes, it'll be later possible to have references to objects that don't yet have sha1 computed (fast-import with threads future).
Dmitry Ivankov (8): fast-import: cache oe in file_change_m fast-import: cache oe in parse_new_tag fast-import: cache oe in note_change_n fast-import: extract common sha1_file access functions fast-import: tiny optimization in read_marks fast-import: cache oe in load_tree fast-import: cache oe in cat_blob fast-import: cache objects while dereferencing
fast-import.c | 177 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 96 insertions(+), 81 deletions(-)
-- 1.7.3.4