Login to participate
  
Register   Lost ID/password?

Louis Kessler’s Behold Blog

5 Down, 1 To Go - Sun, 15 Nov 2009

Print Preview and Printing worked out pretty well. I got through it in about an hour and a half.

I’m pleased it wasn’t that much slower than the old way. For my very large test file, it previously took about 25 seconds to bring up the Print Preview. Now it takes 45 seconds. And there is optimization I can do sometime in the future to bring that 45 seconds down somewhat.

But remember this is a big file. This preview results in a 13237 page document. That size document does well to choke most programs.

4 Down, 2 To Go - Sun, 15 Nov 2009

The last little bug in Searching is fixed.

It wouldn’t highlight some searches on the way back. This was tricky because the cause was not what I expected. Going backwards, I had to set it to start at the end of the current block of text. But the last item was sometimes my invisible text. In that case, the current location would not be set.

That’s basically working good enough for Beta now.’

On to number 5.

The Tradeoff - Sat, 14 Nov 2009

I’ve made great performance improvements that you will see when the Beta is released. It is all due to virtualizing Richview and not generating the entire Everything Report at program startup. Instead, only the piece you need to see is generated.

For my large test GEDCOM (24 MB, 100,000 people), it has reduced loading time and memory from 116 seconds and 994 MB down to 14 seconds and 260 MB. That’s a pretty good improvement in both time and memory.

But there is a tradeoff involved. The entire Everything Report is no longer resident in memory, so operations that need to go through the whole document need to have it generated.

That problem manifests itself in my last 3 tasks before Beta: Searching, Printing and Exporting. In each case, you may need to go through the whole file to get your result.

In the last alpha version, after waiting the 116 seconds for the file to load, if I searched for a text string that wasn’t in the file, it took less than 2 seconds to come back with “string not found”. In the new version, it takes about 10 seconds.

This is only a problem with very large files such as this one. It is something that I can optimize and make somewhat faster. It will never be as fast as searching though a pre-generated in-memory file. And the larger the file gets, the longer it will take. I may be able to get it to work fast enough for this size file, but one 3 times bigger will still take 3 times longer.

So for now, this will be the tradeoff. A few operations that will take longer than before in return for much faster loading and a big reduction in memory use.

The result is I will have to change the cursor to indicate when Behold is busy with these operations. For now, that will have to do.