Inspectors

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Inspectors

Ian Bartholomew-3
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


Reply | Threaded
Open this post in threaded view
|

Re: Inspectors

Bill Schwab-2
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]


Reply | Threaded
Open this post in threaded view
|

Re: Inspectors

Andy Bower
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
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
>
>
>
>
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Inspectors

Ian Bartholomew-3
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


Reply | Threaded
Open this post in threaded view
|

Re: Inspectors

Andy Bower
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
---


Reply | Threaded
Open this post in threaded view
|

Re: Inspectors

Ian Bartholomew-3
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