Genii Weblog

Civility in critiquing the ideas of others is no vice. Rudeness in defending your own ideas is no virtue.

Mon 11 Jun 2007, 08:51 PM
Speed isn't everything, and I was worried a bit about how to test OpenSesame with large files.  The question is, what is large but not simply fabricated.  It is not too hard to create a large spreadsheet (see OpenSesame: Edit view in spreadsheet), but it is not terribly complex content.  Besides, I want to work with word processing documents.  I decided to work with the ODF 1.0 specification itself, which is about 691 pages long with different formatting, images, etc.  If I could get a copy of Microsoft's Office Open XML 1.0 specification, I'd try that, because at 6000+ pages, you don't get much bigger, but I don't have a copy in ODF format.

Anyway, the task OpenSesame has to accomplish is to unzip the various XML parts in the OpenDocument-v1.odt and load them into memory.  The main piece is the content.xml, which is 4,517,062 bytes, and it has to be parsed and loaded into a DOM tree.  OpenSesame performed beautifully, unzipping, parsing, loading, traversing the tree to retrieve a bit of text (just to be sure it was working properly), and removing the tree from memory, all in under a second and without any glitches.  I wondered how the NotesDOMParser would handle a similar task.  Since there is no class for unzipping, I just started with the content.xml and had the NotesDOMParser load, parse and unload.  It took 9 seconds.  OK, speed isn't everything, but it doesn't hurt.

So, now I need some good stress tests.  Should I do a ReplaceText and replace every letter 'a' with the word 'zoo' (since that would expand the text values, it would put more stress than replacing the letter 'a' with the letter 'z')?  Should I do a LinkMatching across the whole document and provide contextual links to website?  Should I create a really mungo Notes document by converting the ODF to rich text?  What would be good tests to run to see how well OpenSesame works under pressure?

Copyright 2007 Genii Software Ltd.