[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
|