CPU hogging in the current master

Anton Lundin glance at acc.umu.se
Tue Sep 24 06:42:37 UTC 2013

I'm on Malta diving so i might be quite unresponsive, but I might take a look at it during some off gassing.

//Anton - writing on his cell

Dirk Hohndel <dirk at hohndel.org> wrote:
>On Tue, 2013-09-24 at 13:04 +0300, Lubomir I. Ivanov wrote:
>> i've noticed that particular dives in the Qt divelist make the
>> application non-responsive for n seconds.
>> test case for a couple of builds - Qt (master) and GTK (binary from
>> 12.may.2013):
>> - disable all extra profile plot settings
>> - import all test dives
>> - select dive #20 (20th test dive...)
>> - measure render time, roughly
>> with this old GTK build it takes milliseconds, with Qt it takes >5
>> after some testing i've narrowed down the cause to be in the
>> profile.c: calculate_deco_information()
>> while(next_stop >= 0) {
>> ...
>> where 'next_stop' seems to update thousand of times between 3000 and
>> for this dive.
>This is the TTS (time to surface) calculation - and reading the code
>a bit confused by what it is trying to do.
>> it seems that this portion of code was written by Anton Lundin in
>> july, so i've CCed him in this email.
>> git blame profile.c -L 1091,1107
>> 35356e36 (Anton Lundin 2013-07-05 15:19:41 +0200 1091)
>> could this algorithm be somehow improved?
>Clearly July wasn't my best month as maintainer... I should have
>scrutinized this a bit more...
>Let's see what Anton has to say, otherwise I can look at reimplementing
>this. It should be pretty easy to simply cache the values instead of
>constantly walking forward and backward.

More information about the subsurface mailing list