Re: correct use of keys?
Michael + Thomas: >> I have a stylesheet which, when run on a 10MB doc turns it into a 30MB >> doc in ~600 seconds. >> Even for such a large doc, this seems like along time given my machine >> is a 1.33GHz Athlon, 256MB. MK> It seems a long time to me, too. Which processor are you using? Are you MK> getting thrashing due to shortage of memory? I'm using the latest MSXML 4 (July?). Toward the end of the transformation there is a small amount of swapping going on, but certainly not what I'd call thrashing. For the majority of the time there is virtually no drive access at all. MK> better off doing a preprocess of the document in which elements whose name MK> contains 'field' are given an extra attribute, field="yes", and then use MK> this attribute in the second phase. In any case, I suspect that you are not MK> interested in all nodes whose name contains 'field', but only in elements MK> whose name contains 'field'. Replacing "node()" by "*" will speed things up MK> a bit. I tried this in a couple of stages: Changing "node()" to "*" made no difference Using "field = 'yes'" instead of "contains(....)" made no difference I also tried using specifically "*[(name() = 'field') or (name() = 'datefield') or (name() = 'computedfield')] This also made no difference. In fact, when I used the "field = 'yes'" method, the Win2k task manager said my program was using up to 175MB memory, where previously I had not seen it above 105MB. TP> Then I suggest that you temporarily change the stylesheet so it TP> outputs only one node where it has to use one of the keys, and see TP> how long it takes. This will check whether compiling the TP> stylesheet and building the key indices is taking an inordinately TP> long time. I tried this, and the index was generated instantly. Presumably because the document that is being indexed is fairly small. TP> Another thing is whether you are testing out the transfomation in TP> an environment where the result is displayed in a browser (like TP> XML Cooktop or XML Spy). No, I'm transforming programatically in VB so that's not an issue. One thing I did notice is that if the keys are empty (I had made a mistake), the transform only takes 60 seconds as opposed to 600. This suggests surely that there must either be something wrong with the way I am using the keys (so they are being ineffectual), or MSXML has a very poor implementation of keys. Any other suggestions??? -- groovy baby, Kevin mailto:xmldude@xxxxxxxxxxxxxxxx ++++++++++++ Cool music - http://burieddreams.com/marshan ++++++ Attitude Webzine - http://burieddreams.com/attitude XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format