[ENH]TransformMorph caching

Daniel Vainsencher danielv at netvision.net.il
Thu Jul 24 21:59:12 UTC 2003


I think speeding long lists is important enough that more than just
trivial changes will be considered. 

It seems the QuadTrees are a general solution that could be used without
adding any constraints, just some complexity. It might be worth
considering.

You mentioned a performance penalty in building the tree. Did you
measure how significant it is? Does it slow down or speed up opening a
changesorter with lots of updates, for example?

More generally, what does it do to the macrobenchmarks?

Daniel

Eddie Cottongim <cottonsqueak at earthlink.net> wrote:
> This is a multi-part message in MIME format.
> 
> --Boundary_(ID_12ycl1ai8tjpRxnKRlD/1g)
> Content-type: text/plain; charset=iso-8859-1
> Content-transfer-encoding: 7BIT
> 
> We've talked quite a bit about working on speeding scrolling in lists and
> scrollpanes.
> 
> One thing that Andreas, myself and others have found is that by caching
> TransformMorph's localSubmorphBounds, you can get a fairly nice improvement
> in scrolling speed for lists and scrollpanes. This seems to be a safe and
> simple change.
> 
> I hope that this enhancement is simple enough that it can be accepted and
> provide some immediate benefit to users on PDAs and slower machines. On
> larger lists, you should see 20-50% improvement in scrolling. Hopefully
> later we'll get something really smooth, but this helps for now.
> 
> Andreas sent essentially the same code to the list a while back. If you'd
> rather use his, thats fine with me, just let one of us know and it can be
> reposted as an [ENH].
> 
> Eddie
> 
> >From the preamble:
> 
> "Cache the value of localSubmorphBounds, as suggested by Andreas, myself and
> others.
> 
> Adds the iVar localBounds to do this.
> Value is computed lazily by the localSubmorphBounds method and cached. It is
> invalidated when layoutChanged it received.
> 
> Class comment is changed to reflect this addition.
> 
> Should yield 20-50% speedup in scrolling speed depending on the number of
> submorphs of the TransformMorph."
> 
> --Boundary_(ID_12ycl1ai8tjpRxnKRlD/1g)
> Content-type: application/octet-stream;
>  name=TransformMorphCaching-ar+efc.1.cs.gz
> Content-transfer-encoding: base64
> Content-disposition: attachment; filename=TransformMorphCaching-ar+efc.1.cs.gz
> 
> H4sIAAAAAAAAAK1W32/bNhB+1oP+h3OKwgnmuP6RH6j3srRZgQ5tMTRF9xBkAy1SNlFKVEkqmYf9
> 8fuOkmXJzeMMJLbIu+N3d9991PidswXdfa+V+LacXq1VEGRzGo8v6Lfa7Ggxmy3HY7o3IigfqK4k
> fqzoxeXyevlAtqRFz5BEoMvVxcVqeU1VMR6lJ2+3otwoulNhlSRfnCh9bl3x0bpq+1ZkW11uzoX7
> SeVZestxkyTpx0tv6rC1jpd/lVIremtDsOVGF2nK7ooC/h6FqRWDNjYT5q5eFxz+ja1L6SckPPl6
> swF4JWm9o5tSOiWwUey8MjmJUpJFGOenaXojpY8x9VfhmnhNHAqWpMWWhtnXeKD2lNmiqjmuEf9o
> YEZ4dn4GBxUKmch4WsbI5ZTeB46hS+DXXFVJT1tVItbO1qEpnCQdyKlM6Ud4IGkjfDy2UGX0zloz
> wHMqNyoLESMJlCtoW8LnbmtrI2mnFf4vZueXs5fkK6VkXeFw8pmzxqARzSJJValS8jOay9mUdbFW
> juvr25Q8P/DWsKHTk1Gaxl9smTFUEGVokya69EGUmUKBtVgb9UkUCnbjsLcjX1g0hBH0GzBOkxjy
> 2A/rlbXmVmecLzb3qxlKurFuh6d4tM7O3wivM9AyHQ1R7St6F0RRwR58pOtXi4tXkdTz69VsPqbK
> aVCRZqP05ihxlDE4K+tMofC0OL+lLhnBoAhT9aTQWh08nW6MXQtzhjOtQ515riItuKCnMePhHmrN
> fl3xJ6CJNoqE8ZYyo6uKSyWMIal9BfYwGdhjHQs3JbqrVKZzjchmB28dtlRaxM29ChiQcoNo1oEJ
> gnmAle6wxriP5nT2y+wMyzhOVJXClKi/RRZAfhFiCsFWH1Qe9hR50qW0T02ZThlVZX1k5hmAfbah
> KRDn3x5PwilwGXoDznMq3UQBo97octJgALP3VIICuCTsKgWdSKQCo3XFYdNDH5Kk5UDXueQL4h4y
> O5h23Sp2z/UoTfafBtRRq+DUdWqaHricJG/AUiVKgufvyh0xvfHMbBlAQ0+ydrwqnUD9Nml/EJLP
> GPKuZ6U2SRIFxQ+18MVzIoRDqWrO5rql6ZDHSAC7XIzY9vAEzdN5rhyLzZ5cPrDFBmM2GWoFxItl
> tCHBkP8sSFTVrt0wzSrDtwE0eA9psRN2jIqDM3RRgVG1B8sPFM8EpLLpQ8f0rdKup0sNbgAAN53F
> xHIyDdGbc54DV2amBms6AgKXa4nZghJRs3sYkBDASR5FyyCzSFYwF5b2EXdJPCivzV692mk4IIVk
> wAytZNnfo/a2dqDz91pIp/nGdZFgzilf2abQ7UA0Y7Uf8VH64MPOqPvT5esFLRc0h2pd0Rxf13R1
> Sa/pcrE4y+eTfK4n8evD8Tjgao0S+HO7v2fr0fKBfL0NCOoPitrcd/4dS+Z4oyye3W4M9jyrsFer
> iyV0eXD1pWlycnNQoizeYluBOhcoseTW1O0FyIXB+PSmBLdrd6/GgsUZmZ6kSf9O+YvnB0KS/Olr
> MH949Y5o9D+kNee0fhxFzq30T8pN+A4eKA35Hd5Viki9tsFMHxb4vrjQaTP+pHNW824duvqHagQ6
> a1+RwNZGF47mf0pfOsk4ehOpwTd+8dDqkYv7YlAZlHFYR51/0mZ1D2mMr1Qdllu7ul8V9G+6V8uB
> PV4qB70oegPz0MosLG14zrj/9L3W2bePym3wYjoI8jBNk4dpwg3uO8TO/gdjIenk+QoAAA==
> 
> --Boundary_(ID_12ycl1ai8tjpRxnKRlD/1g)
> MIME-version: 1.0
> Content-type: text/plain; charset=us-ascii
> Content-transfer-encoding: 7BIT
> 
> 
> 
> --Boundary_(ID_12ycl1ai8tjpRxnKRlD/1g)--



More information about the Squeak-dev mailing list