Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 129303 Details for
Bug 269248
[Viewers] TreeViewer sort takes an inordinate amount of time
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Example Test
treeSortPerformanceTest.patch (text/plain), 3.76 KB, created by
James Blackburn
on 2009-03-18 19:10:49 EDT
(
hide
)
Description:
Example Test
Filename:
MIME Type:
Creator:
James Blackburn
Created:
2009-03-18 19:10:49 EDT
Size:
3.76 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.tests.performance >Index: src/org/eclipse/jface/tests/performance/Bug269248TreeViewerSorterPerformance.java >=================================================================== >RCS file: src/org/eclipse/jface/tests/performance/Bug269248TreeViewerSorterPerformance.java >diff -N src/org/eclipse/jface/tests/performance/Bug269248TreeViewerSorterPerformance.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jface/tests/performance/Bug269248TreeViewerSorterPerformance.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,117 @@ >+package org.eclipse.jface.tests.performance; >+ >+import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.jface.viewers.ViewerSorter; >+ >+/** >+ * @since 3.5 >+ */ >+public class Bug269248TreeViewerSorterPerformance extends TreeTest { >+ >+ private final String sortProp = "SORT"; >+ >+ private class Sorter extends ViewerSorter { >+ >+ boolean reverse = false; >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) >+ */ >+ public int compare(Viewer viewer, Object e1, Object e2) { >+ if (reverse) >+ return -super.compare(viewer, e1, e2); >+ return super.compare(viewer, e1, e2); >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.viewers.ViewerComparator#sort(org.eclipse.jface.viewers.Viewer, java.lang.Object[]) >+ */ >+ public void sort(Viewer viewer, Object[] elements) { >+ long time = System.currentTimeMillis(); >+ super.sort(viewer, elements); >+ System.out.println("#sort (" + elements.length + " element) time taken: " + (System.currentTimeMillis() - time)); >+ } >+ >+ public boolean isSorterProperty(Object element, String property) { >+ return sortProp.equals(property); >+ }; >+ >+ public void reverse() { >+ reverse = !reverse; >+ } >+ } >+ >+ /** >+ * @param testName >+ * @param tagging >+ */ >+ public Bug269248TreeViewerSorterPerformance(String testName, int tagging) { >+ super(testName, tagging); >+ } >+ >+ /** >+ * @param testName >+ */ >+ public Bug269248TreeViewerSorterPerformance(String testName) { >+ super(testName); >+ } >+ >+ public void testTreeSortRefresh() { >+ openBrowser(); >+ >+ Sorter s = new Sorter(); >+ viewer.setSorter(s); >+ >+ TestTreeElement input = new TestTreeElement(0, null); >+ viewer.setInput(input); >+ input.createChildren(15000); >+ processEvents(); >+ viewer.add(input, input.children); >+ >+ long total = 0; >+ for (int i = 0; i < 10; i++) { >+ processEvents(); >+ s.reverse(); >+ >+ long start = System.currentTimeMillis(); >+// startMeasuring(); >+ viewer.refresh(); >+// stopMeasuring(); >+ total += System.currentTimeMillis() - start; >+ System.out.println("Viewer refresh ("+ viewer.getTree().getItemCount() + " items) took: " + (System.currentTimeMillis() - start)); >+ } >+ System.out.println("Average: " + total / 10); >+// commitMeasurements(); >+// assertPerformance(); >+ } >+ >+ public void testTreeSortUpdate() { >+ openBrowser(); >+ >+ Sorter s = new Sorter(); >+ viewer.setSorter(s); >+ >+ TestTreeElement input = new TestTreeElement(0, null); >+ viewer.setInput(input); >+ input.createChildren(15000); >+ viewer.add(input, input.children); >+ >+ long total = 0; >+ for (int i = 0; i < 10; i++) { >+ processEvents(); >+ s.reverse(); >+ >+ long start = System.currentTimeMillis(); >+// startMeasuring(); >+ viewer.update(input, new String[] {sortProp}); >+// stopMeasuring(); >+ total += System.currentTimeMillis() - start; >+ System.out.println("Viewer update ("+ viewer.getTree().getItemCount() + " items) took: " + (System.currentTimeMillis() - start)); >+ } >+ System.out.println("Average: " + total / 10); >+ >+// commitMeasurements(); >+// assertPerformance(); >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 269248
:
129303
|
135177
|
135178
|
135208