Martijn Faassen wrote:
Another data point. Copy & paste of ParsedXML documents is normal and fast when the object is in a folder not surrounded by too many other folders (or objects in general, not sure yet). If I create a bunch of very large folders sitting next to the ParsedXML document that I'm going to copy, the copying process slows down and generates a lot of extraneous megs that I can then clean out again from the ZODB.
Somehow the document is being affected by its environment, though I doubt I have the full story yet (I did have problems with folders that were not filled with anything else before).
The manage_beforeDelete() and manage_afterAdd() events are propagated to subfolders, meaning that a whole lot of objects have to wake up every time you add or remove something. Or it might be manage_afterClone() being called, which is very similar. You could add a temporary print statement to ObjectManager.manage_after* to see just how often the methods are getting called. The solution? Event management. Make objects register to receive events. Shane