Okay. I’ve done enough data structure restructuring for now. My main goal was to separate citations and I’ve done that. The rest can improve bit by bit as it needs to.
I used to implement citations as a set of linked records that had a lot of repeated information in them. I thought I’d get a performance boost by switching them to a string-based structure. The new structure is definitely easier for me to program with and was worth the effort. But the execution time stayed the same and memory increased 5%. That surprised me very much, since I was sure memory use would have been reduced. I spent all day yesterday trying to figure out why, but couldn’t.
Even so, my other improvements have given a 15% speed improvement and reduced memory use by 12% since the last release. That’s good enough for now and I’ll get back to adding the rest of the features needed to get version 0.98.9 out.