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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html