Skip to content

Commit f5b8eb0

Browse files
committed
[GTK] Optimize TreeItem constructor by removing ID system #882
The ID system tracking association of every TreeItem with GTK model entry had been using GTK.gtk_tree_store_set() to persist a key in GTK model. This operation has linear execution time over model size. IDs were replaced with tree paths and strong references, which, if implemented right, have logarithmic execution time on balanced trees and constant execution time on wide trees. Performance improvement is proven by running org.eclipse.swt.tests.junit.performance.Test_org_eclipse_swt_widgets_Tree.jfaceReveal() In test jfaceReveal[Shape: STAR, virtual: true]: 10_000 elements: 141_061_117ns -> 4_369_889ns 100_000 elements: 10_761_449_641ns -> 181_898_611ns (-98%)
1 parent cc810ea commit f5b8eb0

File tree

5 files changed

+332
-438
lines changed

5 files changed

+332
-438
lines changed

0 commit comments

Comments
 (0)