Work is progressing well on the internal restructuring, and I’m about halfway through. So far, I’ve done the GEDCOM input part and cut the time that takes in half. I’ve also almost eliminated the Preprocessing step. My goal is to make a clear distinction between the code and data structures needed for input and the code needed for generating the Everything Report.
Once I got to this point, I ran my profiler (to find out what parts of Behold take the longest) and I found two places for improvement. All these changes have now resulted in a 10 to 15% improvement in loading time. Good for a start, but there’s more to come in the next week.