Thanks to all who posted kind comments after my previous blog post. I have been following the plan I outlined in that post. Progress is steady but slow (a familiar theme). I have been working on my idea for a final, fairly dramatic database size shrink and I have got it working nicely. The kingbase database file included in the demo shrinks from 270Mb to 85Mb and (more importantly) the total zipped .exe demo shrinks from 106Mb to 67Mb. The program’s memory usage shrinks dramatically too.
Basically I have decided that using the SQL ideas I learned on a commercial programming job a couple of years ago was a mistake and I have reverted to a compact in-memory database method with brute force searching rather than SQL indexes. Much of this (including the brute force searching) is already present in the demo – the difference now is that I am storing all the meta-data (players, event, site etc.) in a very compact binary form with no SQL artifacts anywhere. I might keep the giant SQL indexed database option for really huge databases. But with the amount of memory available in consumer PCs these days it’s almost not necessary. Can you think of a better use for 1Gb of your PC’s memory than storing 10 million chess games (more than all the master games ever played) for instantaneous browsing and search? On my PC Chrome uses that much to display a few web pages! (for some reason).
It’s strange that in order to create a chess database program I have gone all the way around the houses and returned to the approach I would probably have used in the first place if I knew nothing at all about conventional database programming. Oh well, one lives and learns.
I was planning to make a new demo release around now, but;
- The user experience hasn’t changed much with the size reduction, the real changes in that respect will come from the other part of my plan – tightening up the program and fixing all the annoying little problems.
- I haven’t quite finished the size shrink work yet – and now I need to take a week or two off to attend to other business.
- I am giving myself permission to blog if I want to without necessarily delivering something new.