KDE Bug Tracking System
Home
Report New Wish or Bug
Query Existing Reports
First
Last
Prev
Next
No search results available
Search page
Bug
101148
:
Performance problem with large models
P
roduct
:
umbrello
Co
m
ponent
:
general
Status
:
RESOLVED
Resolution
:
FIXED
Target
:
---
Version
:
unspecified
Pr
i
ority
:
NOR
Severity
:
normal
V
otes
:
0
Description
:
Opened:
2005-03-09 08:36
Last Changed:
2005-03-19 02:14:00
Version: (using KDE Devel) Installed from: Compiled sources Loading a model containing the main classes of ACE (
http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ace/
) takes in excess of 20 minutes on a 1GHz Pentium Linux machine. This is due to the new xmi.id resolution pass which was added for loading foreign XMI files. We should look into how to make type resolution scale well (e.g. use a dictionary of pointers to unresolved references which is indexed by xmi.id instead of the current linear search.)
Comment
#1
Oliver Kellogg 2005-03-19 02:13:58
CVS commit by okellogg: UMLListView::{slotObjectCreated,childObjectAdded}: It turns out the slowdown was caused by calling ensureItemVisible() during UMLDoc::resolveTypes(). BUG:101148 M +7 -3 umllistview.cpp 1.150 M +4 -1 umlobject.cpp 1.71 M +5 -0 umlobject.h 1.51 --- kdesdk/umbrello/umbrello/umllistview.cpp #1.149:1.150 @@ -597,4 +597,6 @@ void UMLListView::slotObjectCreated(UMLO connectNewObjectsSlots(object); newItem = new UMLListViewItem(parentItem, object->getName(), convert_OT_LVT(type), object); + if (m_doc->loading()) + return; ensureItemVisible(newItem); newItem->setOpen(true); @@ -686,8 +688,10 @@ void UMLListView::childObjectAdded(UMLOb UMLListViewItem *newItem = new UMLListViewItem(parentItem, text, convert_OT_LVT(obj->getBaseType()), obj); + if (! m_doc->loading()) { ensureItemVisible(newItem); clearSelection(); setSelected(newItem, true); } + } connectNewObjectsSlots(obj); } --- kdesdk/umbrello/umbrello/umlobject.cpp #1.70:1.71 @@ -63,4 +63,5 @@ void UMLObject::init() { m_bStatic = false; m_bInPaste = false; + m_bCreationWasSignalled = false; m_pSecondary = NULL; } @@ -328,9 +329,11 @@ QString UMLObject::getSecondaryId() cons void UMLObject::maybeSignalObjectCreated() { - if (m_BaseType != Uml::ot_Stereotype && + if (!m_bCreationWasSignalled && + m_BaseType != Uml::ot_Stereotype && m_BaseType != Uml::ot_Association && m_BaseType != Uml::ot_Role) { UMLDoc* umldoc = UMLApp::app()->getDocument(); umldoc->signalUMLObjectCreated(this); + m_bCreationWasSignalled = true; } } --- kdesdk/umbrello/umbrello/umlobject.h #1.50:1.51 @@ -414,4 +414,9 @@ protected: /** + * Auxiliary to maybeSignalObjectCreated(). + */ + bool m_bCreationWasSignalled; + + /** * Pointer to an associated object. * Only a few of the classes inheriting from UMLObject use this.
P
latform
:
Compiled Sources
O
S
:
Linux
K
eywords
:
People
Reporter
:
Oliver Kellogg
Assigned To
:
Umbrello Development Group
Related actions
View Bug Activity
Format For Printing
XML
Clone This Bug
Note
You need to
log in
before you can comment on or make changes to this bug.
Attachments
Add an attachment
(proposed patch, testcase, etc.)
Depends on
:
B
locks
:
Show dependency tree
-
Show dependency graph
First
Last
Prev
Next
No search results available
Search page
Actions
Reports
Requests
Reports
Bugs reported today
Bugs reported in the last 3 days
Bug reports with patches
Weekly Bug statistics
The most hated bugs
The most severe bugs
The most frequently reported bugs
The most wanted features
Junior Jobs
Report ownership counts and charts
My Account
New Account
Log In