[racket-dev] Large preferences file and performance

From: Neil Toronto (neil.toronto at gmail.com)
Date: Fri Dec 3 16:56:10 EST 2010

Eli Barzilay wrote:
> 20 minutes ago, Casey Klein wrote:
>> I just pushed a fix for a bug that made DrRacket extremely sluggish
>> on my laptop. Most everything was slow, but typing in the find and
>> replace fields was particularly bad -- each character would take
>> about a second to appear on screen.
>>
>> The problem turned out to be that my framework preferences file was
>> enormous, a problem since DrRacket saves your preferences very
>> frequently. In particular, it saved them on each keystroke in the
>> find and replace fields. (But no more. See http://bit.ly/eQmhOH)
>> [...]

Ah! Thanks! I've always hated searching for text on my poor little 
laptop. (I thought it had something to do with rendering the ellipses. Huh.)

The last item on my short list of complaints about running DrRacket on a 
laptop is how slowly it renders syntax-highlighted text. (40 lines takes 
about 1/8 to 1/2 second, depending on file size.) Any ideas there?

> Something that I have said in the past a few times: IMO, it would be
> better to have an indirection layer when writing the preferences --
> most of the "transient" changes (like ones that happen after every
> keystroke or a result of moving or resizing the windows) could go
> through with a timer so that there are no such frequent writes,
> instead, they'd be lumped in less frequent writes.  Non-transient
> changes (eg, changing preferences) could still be done immediately, so
> there's no consistency issues with such changes.

+1, if I get a vote. People get annoyed with GUIs when they have 
noticeable delays; i.e. > 50ms or so. This would help reduce them.

+2 if, to maintain integrity, the preferences file is currently flushed 
or committed as well as streamed out.

Neil



Posted on the dev mailing list.