Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 269248 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jface/tests/performance/Bug269248TreeViewerSorterPerformance.java (+117 lines)
Added Link Here
1
package org.eclipse.jface.tests.performance;
2
3
import org.eclipse.jface.viewers.Viewer;
4
import org.eclipse.jface.viewers.ViewerSorter;
5
6
/**
7
 * @since 3.5
8
 */
9
public class Bug269248TreeViewerSorterPerformance extends TreeTest {
10
11
	private final String sortProp = "SORT";
12
13
	private class Sorter extends ViewerSorter {
14
15
		boolean reverse = false;
16
17
		/* (non-Javadoc)
18
		 * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
19
		 */
20
		public int compare(Viewer viewer, Object e1, Object e2) {
21
			if (reverse)
22
				return -super.compare(viewer, e1, e2);
23
			return super.compare(viewer, e1, e2);
24
		}
25
26
		/* (non-Javadoc)
27
		 * @see org.eclipse.jface.viewers.ViewerComparator#sort(org.eclipse.jface.viewers.Viewer, java.lang.Object[])
28
		 */
29
		public void sort(Viewer viewer, Object[] elements) {
30
			long time = System.currentTimeMillis();
31
			super.sort(viewer, elements);
32
			System.out.println("#sort (" + elements.length + " element) time taken: " + (System.currentTimeMillis() - time));
33
		}
34
35
		public boolean isSorterProperty(Object element, String property) {
36
			return sortProp.equals(property);
37
		};
38
39
		public void reverse() {
40
			reverse = !reverse;
41
		}
42
	}
43
44
	/**
45
	 * @param testName
46
	 * @param tagging
47
	 */
48
	public Bug269248TreeViewerSorterPerformance(String testName, int tagging) {
49
		super(testName, tagging);
50
	}
51
52
	/**
53
	 * @param testName
54
	 */
55
	public Bug269248TreeViewerSorterPerformance(String testName) {
56
		super(testName);
57
	}
58
59
	public void testTreeSortRefresh() {
60
		openBrowser();
61
62
		Sorter s = new Sorter();
63
		viewer.setSorter(s);
64
65
		TestTreeElement input = new TestTreeElement(0, null);
66
		viewer.setInput(input);
67
		input.createChildren(15000);
68
		processEvents();
69
		viewer.add(input, input.children);
70
71
		long total = 0;
72
		for (int i = 0; i < 10; i++) {
73
			processEvents();
74
			s.reverse();
75
76
			long start = System.currentTimeMillis();
77
//			startMeasuring();
78
			viewer.refresh();
79
//			stopMeasuring();
80
			total += System.currentTimeMillis() - start;
81
			System.out.println("Viewer refresh ("+ viewer.getTree().getItemCount() + " items) took: " + (System.currentTimeMillis() - start));
82
		}
83
		System.out.println("Average: " + total / 10);
84
//		commitMeasurements();
85
//		assertPerformance();
86
	}
87
88
	public void testTreeSortUpdate() {
89
		openBrowser();
90
91
		Sorter s = new Sorter();
92
		viewer.setSorter(s);
93
94
		TestTreeElement input = new TestTreeElement(0, null);
95
		viewer.setInput(input);
96
		input.createChildren(15000);
97
		viewer.add(input, input.children);
98
99
		long total = 0;
100
		for (int i = 0; i < 10; i++) {
101
			processEvents();
102
			s.reverse();
103
104
			long start = System.currentTimeMillis();
105
//			startMeasuring();
106
			viewer.update(input, new String[] {sortProp});
107
//			stopMeasuring();
108
			total += System.currentTimeMillis() - start;
109
			System.out.println("Viewer update ("+ viewer.getTree().getItemCount() + " items) took: " + (System.currentTimeMillis() - start));
110
		}
111
		System.out.println("Average: " + total / 10);
112
113
//		commitMeasurements();
114
//		assertPerformance();
115
	}
116
117
}

Return to bug 269248