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 135208 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]
test 2
bug269248.patch (text/plain), 4.00 KB, created by
James Blackburn
on 2009-05-11 16:02:17 EDT
(
hide
)
Description:
test 2
Filename:
MIME Type:
Creator:
James Blackburn
Created:
2009-05-11 16:02:17 EDT
Size:
4.00 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,125 @@ >+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 long sortTime = 0; >+ >+ 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); >+ sortTime += 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); >+ >+ for (int j = 1024; j < 65000; j *= 2) { >+ TestTreeElement input = new TestTreeElement(0, null); >+ viewer.setInput(input); >+ input.createChildren(j); >+ processEvents(); >+ viewer.add(input, input.children); >+ >+ long total = 0; >+ sortTime = 0; >+ for (int i = 0; i < 3; 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("Viewer refresh ("+ viewer.getTree().getItemCount() + " items) sort: " + sortTime / 3 +"ms refresh total: " + total / 3 + "ms"); >+ } >+// commitMeasurements(); >+// assertPerformance(); >+ } >+ >+ public void testTreeSortUpdate() { >+ openBrowser(); >+ >+ Sorter s = new Sorter(); >+ viewer.setSorter(s); >+ >+ for (int j = 1024; j < 65000; j *= 2) { >+ TestTreeElement input = new TestTreeElement(0, null); >+ viewer.setInput(input); >+ input.createChildren(j); >+ viewer.add(input, input.children); >+ >+ long total = 0; >+ sortTime = 0; >+ for (int i = 0; i < 3; 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("Viewer update ("+ viewer.getTree().getItemCount() + " items) sort: " + sortTime / 3 +"ms update total: " + total / 3 + "ms"); >+ } >+ >+// commitMeasurements(); >+// assertPerformance(); >+ } >+ >+} >\ No newline at end of file
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