>A FTTableContainerMorph recreates all its submorphs on every drawOn:. Not correct.
Submorphs are only recreated when the view of the list has changed #canRefreshValues, ie if the variable "needsRefreshExposedRows" is set to true. If this is false nothing will happen in #drawOn: If changes is necessary the drawOn: will recreate submorphs for the current view (showIndex) and set the "needsRefreshedExposedRows" to false signalling that it is correctly laid out. Best regards, Henrik -----Original Message----- From: Pharo-dev [mailto:[email protected]] On Behalf Of Thierry Goubier Sent: Sunday, April 3, 2016 9:32 PM To: Pharo Development List <[email protected]> Subject: Re: [Pharo-dev] [bloc] shape size? I think FastTable is something you should have a look at. Esteban did something really interesting there. In FT, Submorphs are only created when they are about to be displayed: Pharo can easily create hundreds of morphs on every redraw cycle. So FT performance is O(k) where k is the number of rows to display on screen (typical k is ~25), and is O(1) regarding the length of the list (almost: there is a point, for very large tree-like structures, where just iterating over the structure becomes the main performance limitation: see FTTree). A FTTableContainerMorph recreates all its submorphs on every drawOn:. I've played with different variants (do not recreate all submorphs, for example) but you don't see any performance difference (on the time needed for a drawOn:). Regards, Thierry
