[Glass] Awfully slow GRUtf8CodecStream

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Wed Oct 15 12:10:58 PDT 2014


On Wed, Oct 15, 2014 at 3:27 PM, Dale Henrichs <
dale.henrichs at gemtalksystems.com> wrote:

> Mariano,
>
> It looks like you've hit a known problem[1] and I just  haven't gotten
> around to installing the bugfix in Grease...
>

Thanks Dale, I wasn't aware.


> There is a useful discussion about this in the Seaside31 issue #21[2] and
> for 3.2.2 we added a primitive, but I have yet to add the primitive call to
> the Grease base[3].
>
>
If by chance there is a future 3.1.0.7 is there a chance to have such
primitive integrated?


> The patches are in Smalltalk, so if you'd apply the patches and let me
> know if they address your issue or not that'd be great.
>
>
I have just tried: https://github.com/GsDevKit/Grease/issues/2
Wow....I have just tried that, and in my case, it produced a performance
improvement of 4x. My table rendering decreased from 4s to 1s approx.
Then I tried adding some none ascii characters like:

An preost wes on leoden, Laȝamon was ihoten
He wes Leovenaðes sone -- liðe him be Drihten.
He wonede at Ernleȝe at æðelen are chirechen,
Uppen Sevarne staþe, sel þar him þuhte,
Onfest Radestone, þer he bock radde.

and they were correctly displayed. So I guess it is working correctly (else
I don't know what easy other stuff to test).


I'm in the final throes of fixing a whole a pile of Metacello bugs[4], but
> I should be able to get around to the Grease patch in a couple of days if
> you want to wait ...
>
> Dale
>
> [1] https://github.com/GsDevKit/Grease/issues/2
> [2] https://github.com/GsDevKit/Seaside31/issues/21
> [3] https://github.com/glassdb/glass/issues/27
> [4]
> https://github.com/dalehenrich/metacello-work/milestones/1.0.0-beta.32.16
>
> On Wed, Oct 15, 2014 at 9:39 AM, Mariano Martinez Peck via Glass <
> glass at lists.gemtalksystems.com> wrote:
>
>> Hi guys,
>>
>> I am rendering a html table of 100rows and 20 columns using Seaside. In
>> Pharo, the "render" request of Seaside takes approx. 200ms. In Gemstone,
>> same request takes more than 2 seconds....
>> I have run a profiler and it looks the very very slow part is the
>> #nextPutAll: of GRUtf8CodecStream, And more precisely, the Utf8 >> asString
>> that ends up calling #changeClassTo:, which is the guy taking most of the
>> time (60%!!!!!).
>>
>> Using a GRNullCodec decreases at least to 1 second. It is still far from
>> the 200ms from Pharo, but it is better. GRLatin1GemStoneCodec does not even
>> work.
>>
>> Another reason of the slowness in gemstone is that I don't have native
>> code enabled in the seaside gems. I would like to do so, but then I cannot
>> remote debug anymore.
>>
>> I am using Gemstone 3.1.0.6 and Seaside 3.1.3.
>>
>> Is there any workaround or hack I can do to improve performance a bit?
>>
>> thanks,
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>
>>
>


-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20141015/883fb0e2/attachment.html>


More information about the Glass mailing list