[squeak-dev] Can we make computing the local variables in the debugger lazy?

Eliot Miranda eliot.miranda at gmail.com
Sat Sep 19 18:17:12 UTC 2020


Hi Marcel,

    can we try and reduce the frequency at which we compute the variables
in the context inspector in the debugger?  It is a noticeable
performance hit.  I really like the user interface, but the performance hit
is making debugging difficult.

As an example use this:

| samples sineTable sound |
"1 second of A below middle C (220Hz). 16000 / 220 is 72.72 recurring"
sineTable := SoundPlayer sineTable: 73.
sineTable doWithIndex: "And let's not deafen anyone..."
[:sample :index| sineTable at: index put: sample // 4].
samples := SoundBuffer new: 16000.
1 to: samples size by: sineTable size do:
[:i| samples replaceFrom: i to: (i + sineTable size - 1 min: 16000) with:
sineTable startingAt: 1].
1 to: 146 do:
[:i|
samples at: i put: ((samples at: i) * i / 146) asInteger.
samples at: 16001 - i put: ((samples at: 16001 - i) * i / 146) asInteger].
sound := SampledSound
samples: samples
samplingRate: 16000.
sound := MixedSound new
add: sound pan: 0.25;
add: sound pan: 0.75;
yourself.
sound computeSamplesForSeconds: sound duration


Open a workspace in e.g. a 64-bit image prior to Tools-mt.965 (I used an
image containing Tools-mt.942).  Debug the above in the workspace.
Position the cursor at "sound computeSamplesForSeconds: sound duration" and
do "run to here".  It is essentially instantaneous.

Now do the same in a contemporary trunk image.  It takes almost 6 seconds.

I used to be able to click step as fast as I could and the system would
keep up with me.  Now I find that if I click too fast I can accumulate
excess clicks and when I stp clicking the system will continue stepping and
go too far.

I don't want to lose the feedback the new variables list gives us.  But I
do find the performance hit tedious.  I wonder could we cache the list and
only update it
- when Morphic updates, and
- when the context changes?


_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200919/c0dcc722/attachment.html>


More information about the Squeak-dev mailing list