From: Donald G Porter on

<jeffgodfre...(a)gmail.com> wrote:
>> So, 8.6b1 is approx 25x slower than 8.5.8. I know 8.6 is still beta,
>> but is the above expected at this stage?

Alexandre Ferrieux wrote:
> Interesting. Cursory investigation shows this is not a shimmering
> issue, since this usage pattern seems to be keeping byte arrays
> without string rep (which are the most efficiently concatenated
> values), as told by ::tcl::unsupported::representation.

If a bug is filed on this, I'll take a look in a few days.

Meanwhile since Alex appears to be chasing it as well, I offer the
hint of looking at lines 41-47 of tclStringObj.c:

/*
* Set COMPAT to 1 to restore the shimmering patterns to those of Tcl 8.5.
* This is an escape hatch in case the changes have some unexpected
unwelcome
* impact on performance. If things go well, this mechanism can go
away when
* post-8.6 development begins.
*/
#define COMPAT 0

Might not be the problem, but should be easy to try.

DGP
From: Jeff Godfrey on
Alexandre Ferrieux wrote:

> Maybe something with the quadratic process of endlessly reallocating
> of the growing value... though I fail to see why it's new to 8.6.
>
> In any case, please file a bug report.

Alex (et al.),

Thanks for the input. I'll file a bug report this morning. The issue
does seem to be the append itself as removing it from the mix places the
8.5 / 8.6 timings in at least the same ballpark. That said, 8.6 is
still about 23% slower in that case, but that's better than 25x
slower... ;^)

I'll report back with a bug number once it's filed.

Thanks,

Jeff
From: Jeff Godfrey on
Jeff Godfrey wrote:

> I'll report back with a bug number once it's filed.

OK, bug report filed as SF (2992970). It seems I can only attach a
single file to a ticket? I attached the sample Tcl script, but then
didn't see a way to also attach the sample binary file it reads. It may
have been too large anyway (13.4 MB). I can make it available by other
means if necessary - just ask.

Thanks,

Jeff
From: Jeff Godfrey on
Alexandre Ferrieux wrote:

> Also, you might add the timings with alternative [append]'s:
>
> set buffer $buffer[set buffer {}][read ...]
>

Alex,

Trying something similar to the above...

set rec [read $fd $nextlen]
set buffer $buffer[set buffer {}]$rec

8.5 goes from 0.5 secs to 34.5 secs
8.6b1.1 goes from 14 secs to 34.5 secs

So, in that case, they are approx equal, but much worse.

Jeff
From: Alexandre Ferrieux on
On Apr 27, 3:59 pm, Jeff Godfrey <jeff_godf...(a)pobox.com> wrote:
> Jeff Godfrey wrote:
> > I'll report back with a bug number once it's filed.
>
> OK, bug report filed as SF (2992970).  It seems I can only attach a
> single file to a ticket?  I attached the sample Tcl script, but then
> didn't see a way to also attach the sample binary file it reads.  It may
> have been too large anyway (13.4 MB).  I can make it available by other
> means if necessary - just ask.

Thank you very much Jeff. Sequel in the ticket's comments :-)

-Alex