LibOverride: Make diffing several times faster.
authorBastien Montagne <b.mont29@gmail.com>
Fri, 22 Nov 2019 11:26:36 +0000 (12:26 +0100)
committerBastien Montagne <b.mont29@gmail.com>
Fri, 22 Nov 2019 11:26:36 +0000 (12:26 +0100)
commit2a38b857f7dc33150ff44ffda3366dbb197d5425
treed5e634bf89b86a9d21ad692a1a6a1a42525e629f
parentcfb7f508ce76b8dea83da555e67813c161a6869d
LibOverride: Make diffing several times faster.

Diffing on undo steps is a critical performance point of override
system, although not required for override itself, it gives user
immediate feedback ove what is overridden.

Profiling showed that rna path text search over overrides operations was
by far the most costly thing here, so now using a runtime temp ghash
mapping for this search instead.

Seems to give at least 5 times speedup on big production rig.
source/blender/blenkernel/intern/library_override.c
source/blender/blenloader/intern/readfile.c
source/blender/makesdna/DNA_ID.h
source/blender/makesrna/intern/rna_access_compare_override.c