Just an observation rather than a bug report, but it does seem a bit of a
backward step? I've been doing a bit of work today that involved inspecting collections returned as a result of some workspace evaluations. I thought that the process seemed a bit sluggish so I did a check - a := (1 to: 100000) asArray. Time millisecondsToRun: [a inspect] D4 - ~300 D5 Flipper - ~2400 D5 Basic - ~1950 I can't see any difference (visually) between D4 and D5 Basic so it looks like it is just the change from specialised to general inspectors that has caused the performance hit there.? The Flipper result is a bit strange (to my eyes) though. It only shows 500 items at a time so I would have thought that changing the above to (1 to: 500) would give the same result as it is still getting the same number of items to display, but it doesn't - it goes down to 500mS. From that I guess that Flipper is preparing for the complete collection but only displaying the first 500 which seems to defeat the object. Changing it to display 5000 items by default only bumps the timing up to 3100mS and is, I would think, more usable. Regards Ian |
Ian,
> a := (1 to: 100000) asArray. > Time millisecondsToRun: [a inspect] > > D4 - ~300 > D5 Flipper - ~2400 > D5 Basic - ~1950 > > I can't see any difference (visually) between D4 and D5 Basic so it looks > like it is just the change from specialised to general inspectors that has > caused the performance hit there.? Ouch!!! One thought: could there be an STB conversion impacting the basic inspector in D5? If the view resource is old, there might be a lot of overhead that will go away once it's resaved. Have a good one, Bill -- Wilhelm K. Schwab, Ph.D. [hidden email] |
In reply to this post by Ian Bartholomew-3
Ian,
Regarding the Flipper times. Although Flipper is only populating the tree to 500 elements it is still populating the full list of the array contents in the CollectionPresenter at the right. I think this is what will be taking the time. The 500 limit in the tree is arbitrary and can be changed by modifying SequenceableCollection>>publishedKeyedAspectsBatchSize. The main purpose of the batching was to make viewing slow collections like DBResultSets more tolerable and you'll see the batch size for these is limited to 10. It just seemed like a good idea to batch the standard collections too, but from what you say there doesn't seem to be much point. With regard to the overall speed of the CollectionPresenter, I suppose we could make this only display the full collection as an option; a bit like the stack in the debugger. What do you think? Best Regards, Andy Bower Dolphin Support http://www.object-arts.com --- Are you trying too hard? http://www.object-arts.com/Relax.htm --- "Ian Bartholomew" <[hidden email]> wrote in message news:[hidden email]... > Just an observation rather than a bug report, but it does seem a bit of a > backward step? > > I've been doing a bit of work today that involved inspecting collections > returned as a result of some workspace evaluations. I thought that the > process seemed a bit sluggish so I did a check - > > a := (1 to: 100000) asArray. > Time millisecondsToRun: [a inspect] > > D4 - ~300 > D5 Flipper - ~2400 > D5 Basic - ~1950 > > I can't see any difference (visually) between D4 and D5 Basic so it looks > like it is just the change from specialised to general inspectors that has > caused the performance hit there.? > > The Flipper result is a bit strange (to my eyes) though. It only shows 500 > items at a time so I would have thought that changing the above to (1 to: > 500) would give the same result as it is still getting the same number of > items to display, but it doesn't - it goes down to 500mS. From that I > that Flipper is preparing for the complete collection but only displaying > the first 500 which seems to defeat the object. Changing it to display 5000 > items by default only bumps the timing up to 3100mS and is, I would think, > more usable. > > Regards > Ian > > > > > > > > > |
In reply to this post by Ian Bartholomew-3
> a := (1 to: 100000) asArray.
> Time millisecondsToRun: [a inspect] .. > D5 Basic - ~1950 > > I can't see any difference (visually) between D4 and D5 Basic so it looks > like it is just the change from specialised to general inspectors that has > caused the performance hit there.? Ahhh. D4 uses a ListView, D5 Basic uses a ListBox. Changing D5 to use a ListView, with it's virtual mode, gets the speed down to 300mS. Any reason why a ListBox is used for D5? Regards Ian |
Yo Ian,
> > a := (1 to: 100000) asArray. > > Time millisecondsToRun: [a inspect] > .. > > D5 Basic - ~1950 > > > > I can't see any difference (visually) between D4 and D5 Basic so it looks > > like it is just the change from specialised to general inspectors that has > > caused the performance hit there.? > > Ahhh. > > D4 uses a ListView, D5 Basic uses a ListBox. Changing D5 to use a ListView, > with it's virtual mode, gets the speed down to 300mS. > > Any reason why a ListBox is used for D5? Well spotted. I can't see any reason why a ListBox should have been used apart from GDI -Gross Developer Incompetance (as opposed to the more usual GUI - Gross User Incompetance). I also notice that changing the list in the CollectionPresenter to a ListView in the same fashion causes my time for your cruel benchmark to drop from 5010ms to 520ms!! #606 and fixed. Best Regards, Andy Bower Dolphin Support http://www.object-arts.com --- Are you trying too hard? http://www.object-arts.com/Relax.htm --- |
Andy,
> Well spotted. I can't see any reason why a ListBox should have been used > apart from GDI -Gross Developer Incompetance (as opposed to the more usual > GUI - Gross User Incompetance). Well, some users are bonkers so that's to be expected :-) > I also notice that changing the list in the > CollectionPresenter to a ListView in the same fashion causes my time for > your cruel benchmark to drop from 5010ms to 520ms!! Yes, I noticed the same thing and got similar improvements. I didn't initially realise the CollectionPresenter showed everything (until you pointed out in your previous post) and that, coupled with the ListBox/ListView change, seems to explain most things. When inspecting the "normal" collections I guess it's just as easy to ignore the tree, and it's batching behaviour, and just use the CollectionInspector. I think a "Show All" for the tree might be a useful addition though. BTW. I did notice that inspecting a LookupTable doesn't use batching - was that intentional? Regards Ian |
Free forum by Nabble | Edit this page |