The retooling the two parts of Behold was tricky, but its going well.
Moving the CONC tag to the input stage led to a few other simplifications. My large test file of 33,000 people that I use for timings takes about 35 seconds. This improvement actually cut a half a second off that.
But changing the storage of each record’s data lines from a linked list into a single long string had me worried. You can’t get much faster than a linked list, but I already needed citations in a string and didn’t want to continue to process data lines in two separate ways. I was relieved when it only added about a second of time on, or only about 3%. But it did reduce the RAM requirement by about 30MB down to 650MB for that file, or about 5%.
For most programmers, the recommendation is to always use more memory if you can save time. But Behold is a bit different in this regard. For very large GEDCOM files, it is often the memory that is Behold’s limitation, so anything I can reduce from that is worth it.
Over the weekend, hopefully I’ll finish this as I merge the display algorithms together and eliminate many inconsistencies and bugs during the process.