Summary: | Code generation and undo/redo take up too much memory | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Sean Clarke <sean.clarke> |
Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | boud |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.0.0 |
Description
Sean Clarke
2004-01-14 16:22:48 UTC
Some more info.. I have tested it and it appears the problem is present with class diagrams, so it looks like all diagrams are affected. I've tried to start umbrello with valgrind, I left it for 30 minutes to startup and it still hadn't started (P4 1.7Ghz + 1.2GB RAM) so I killed it. Any options I can use on valgrind to assist in finding the leak? I suspect this is due to the undo/redo stack which just saves a copy of the diagram in memory. The code generation information might mean this now takes up too much memory. It could be, sort of makes sense why I didn't see it before. It is an exceptionaly large leak though. *** Bug 74242 has been marked as a duplicate of this bug. *** I would think that reducing the number of "modified()" calls within umbrello would also help out with this. Another thought: does umbrello allow the user to control the size of the undo stack? We could have that default to a smaller number, and allow the user to pick a higher one should their hardware be more capable. Why not remember only the CHANGES to the diagram, not a copy of the whole diagram? Or only copies of the modified widgets (worse, but easier)? > Why not remember only the CHANGES to the diagram, not a copy of the whole
> diagram? Or only copies of the modified widgets (worse, but easier)?
It's much harder to implement.
All patches welcome of course :)
I think this problem is mostly gone with the patches by Achim. Of course the memory usage still grows with the time, but this is a normal thing. And yes, Umbrello has great leaks, but this is a different problem. And now you can turn of undo/redo completely. So I mark the problem as fixed. [r652562] Switch the undo/redo feature to KUndoStack based on QUndoStack from Qt4.2. It's an "action" based undo/redo pattern only save the action chain in the undo/redo stack, but the state between actions. set version-fixed-in from 4.0.0 changelog |