Changes between Version 3 and Version 4 of NFR_PREVIEW_PERFORMANCE_R0
- Timestamp:
- 10/28/09 22:54:10 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
NFR_PREVIEW_PERFORMANCE_R0
v3 v4 42 42 * '''ScenePageLogic'''. In the selection logic, put a simple check "!pwa.getSel().getSelected().equals(toSelect)" before the last line which performs the selection. The resultcan be demonstrated when you make a selection rectangle which covers a frame. Without this line, it selects again and again the frame on every move, with it it only makes some checks and does not select anything. Quite faster. 43 43 * '''ListPalette'''. This one has a prop items(), which is a listProp. When something is changed it depends on, it recomputes. But if the newly computed listProp has more than 2 different elements, it fires events that all the elements are removed 1 by 1, then the new elements are added again 1 by 1. The JList's setup method which tracks this prop, recieves n*n signals to recompute. Its setup method iterates through all the items and does some stuff. So, when you switch from a book with 100 pages to another one with 100 pages, the JList of the pagePreviewPalette makes 10K iterations. AllResourcesPalette does even more if the pages are not empty. So, replace the listProp items() with Prop<ImmList<ListPaletteItem>> and do so for every derivative. 44 * '''PwaSelector'''. It has a listprop called lastSelected(). It's private, but there are public methods which use it. For example, getSelected(). And so, all the haloMenus depend on this list Prop, which just like in the list palette, fires lots of changes. Replace it also with a prop<ImmList<ElementView>>. The result may best be visualized when you have lots of frames, select them all and then click on the page in order to deselect them.44 * '''PwaSelector'''. It has a listprop called lastSelected(). It's private, but there are public methods which use it. For example, getSelected(). And so, all the haloMenus depend on this list Prop, which just like in the list palette, fires lots of changes. Replace it also with a prop<ImmList<ElementView>>. The result may best be visualized when you have lots of frames, select them all and then click on the page in order to deselect them. 45 45 46 46 The branch is in branches/private/kyli/myBranch.