> "J.W. Bizzaro" wrote: >> >> Brad, while we're on this topic, perhaps XML writing should be done only > when >> the user chooses to "save" a network. You could use DOM in-between saves > to >> speed things up. > > You may recall from my earlier message about the > "pseudo-distributed-filesystem" that we want to treat networks (of the BL and > PL kind) something like a word-processing document: The user can choose > "new", > "open", "save", "save as", and "close" for any network. I understand your point, and it definately would be possible to keep everything in dom and save it when the user chooses save, but there are 3 problems: 1. XML in dom format can't be parsed using a standard parser, and so we always have to use the dom_iterator to iterate through xml. This method is *much* slower than parsing with a parser. So I don't think we would see a big speed up in everything was in dom. 2. There would be no "crash" recovery since everything would be lost if Piper crashes (since nothing is stored in the filesystem). 3. We would have *a lot* of information in memory all of the time, which I don't think would scale well to complex applications/scripts with lots of nodes. This could also lead to crazy confusing data structures in the code. In addition, this would make debugging the thing a serious problem. Right now you can often pick up problems by browsing the temporarily stored xml, in this case you would have to dumb all kinds of xml to a file and sort through it. Brad