Hi
Have you ever tried a counter in a recent version of Seaside? I don't know about you but for such a simple application it is way too slow for my taste. As part of the 2.8 cycle we look into ways of making Seaside faster. Attached you will find several traces for the counter application. As you can see, an awful lot of time is spent to convert URLs to String. Of that most time is spent in#encodeForHTTP. So what do you find more important, that Seaside is fast or that is supports non-ascii urls? Cheers Philippe _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside trace.txt (13K) Download Attachment trace1.txt (12K) Download Attachment trace2.txt (10K) Download Attachment trace3.txt (15K) Download Attachment trace4.txt (11K) Download Attachment trace5.txt (13K) Download Attachment |
Hi
Have you ever tried a counter in a recent version of Seaside? I don't know about you but for such a simple application it is way too slow for my taste. As part of the 2.8 cycle we look into ways of making Seaside faster. Attached you will find several traces for the counter application. As you can see, an awful lot of time is spent to convert URLs to String. Of that most time is spent in#encodeForHTTP. So what do you find more important, that Seaside is fast or that is supports non-ascii urls? Cheers Philippe P.S.: the original mail had several traces more but was apparently too big, maybe it will arrive later. _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: > encodeForHTTP. > > So what do you find more important, that Seaside is fast or that is > supports non-ascii urls? I'm pretty sure you could have your cake and eat it, too, if you rewrite that method using #indexOfAnyOf: and CharacterSets, which are very fast. - Bert - _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
2007/3/19, Bert Freudenberg <[hidden email]>:
> > On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: > > > encodeForHTTP. > > > > So what do you find more important, that Seaside is fast or that is > > supports non-ascii urls? > > I'm pretty sure you could have your cake and eat it, too, if you > rewrite that method We don't do overrides anymore. > using #indexOfAnyOf: and CharacterSets, which are > very fast. You would do this as a replacement for #isSafeForHTTP? Why not just a boolean Array and lookup by #charCode? Do you see any optimization potential in #encodeForHTTPWithTextEncoding:conditionBlock: ? Philippe > - Bert - > > > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Mar 19, 2007, at 12:58 , Philippe Marschall wrote: > 2007/3/19, Bert Freudenberg <[hidden email]>: >> >> On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: >> >> > encodeForHTTP. >> > >> > So what do you find more important, that Seaside is fast or that is >> > supports non-ascii urls? >> >> I'm pretty sure you could have your cake and eat it, too, if you >> rewrite that method > > We don't do overrides anymore. > >> using #indexOfAnyOf: and CharacterSets, which are >> very fast. > > You would do this as a replacement for #isSafeForHTTP? Why not just a > boolean Array and lookup by #charCode? Because it's much faster? > Do you see any optimization potential in > #encodeForHTTPWithTextEncoding:conditionBlock: ? If I'd see the code, probably. - Bert - _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
2007/3/19, Bert Freudenberg <[hidden email]>:
> > On Mar 19, 2007, at 12:58 , Philippe Marschall wrote: > > > 2007/3/19, Bert Freudenberg <[hidden email]>: > >> > >> On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: > >> > >> > encodeForHTTP. > >> > > >> > So what do you find more important, that Seaside is fast or that is > >> > supports non-ascii urls? > >> > >> I'm pretty sure you could have your cake and eat it, too, if you > >> rewrite that method > > > > We don't do overrides anymore. > > > >> using #indexOfAnyOf: and CharacterSets, which are > >> very fast. > > > > You would do this as a replacement for #isSafeForHTTP? Why not just a > > boolean Array and lookup by #charCode? > > Because it's much faster? A lookup in a boolean Array would be - a bit and for #charCode - an small integer comparison for < - #at: on an array how much faster can you get? > > Do you see any optimization potential in > > #encodeForHTTPWithTextEncoding:conditionBlock: ? > > If I'd see the code, probably. encodeForHTTPWithTextEncoding: encodingName conditionBlock: conditionBlock "change dangerous characters to their %XX form, for use in HTTP transactions" | httpSafeStream encodedStream cont | httpSafeStream _ WriteStream on: (String new). encodedStream _ MultiByteBinaryOrTextStream on: (String new: 6). encodedStream converter: (TextConverter newForEncoding: encodingName). self do: [:c | (conditionBlock value: c) ifTrue: [httpSafeStream nextPut: (Character value: c charCode)] ifFalse: [ encodedStream text; reset. encodedStream nextPut: c. encodedStream position: 0. encodedStream binary. cont _ encodedStream contents. cont do: [:byte | httpSafeStream nextPut: $%. httpSafeStream nextPut: (byte // 16) asHexDigit. httpSafeStream nextPut: (byte \\ 16) asHexDigit. ]. ]. ]. ^ httpSafeStream contents. Philippe > - Bert - > > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Mar 19, 2007, at 13:34 , Philippe Marschall wrote: > 2007/3/19, Bert Freudenberg <[hidden email]>: >> >> On Mar 19, 2007, at 12:58 , Philippe Marschall wrote: >> >> > 2007/3/19, Bert Freudenberg <[hidden email]>: >> >> >> >> On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: >> >> >> >> > encodeForHTTP. >> >> > >> >> > So what do you find more important, that Seaside is fast or >> that is >> >> > supports non-ascii urls? >> >> >> >> I'm pretty sure you could have your cake and eat it, too, if you >> >> rewrite that method >> > >> > We don't do overrides anymore. >> > >> >> using #indexOfAnyOf: and CharacterSets, which are >> >> very fast. >> > >> > You would do this as a replacement for #isSafeForHTTP? Why not >> just a >> > boolean Array and lookup by #charCode? >> >> Because it's much faster? > > A lookup in a boolean Array would be > - a bit and for #charCode > - an small integer comparison for < > - #at: on an array > how much faster can you get? A single primitive invocation for the whole string. >> > Do you see any optimization potential in >> > #encodeForHTTPWithTextEncoding:conditionBlock: ? >> >> If I'd see the code, probably. > > encodeForHTTPWithTextEncoding: encodingName conditionBlock: > conditionBlock > "change dangerous characters to their %XX form, for use in HTTP > transactions" > > | httpSafeStream encodedStream cont | > httpSafeStream _ WriteStream on: (String new). > encodedStream _ MultiByteBinaryOrTextStream on: (String new: 6). > encodedStream converter: (TextConverter newForEncoding: > encodingName). > self do: [:c | > (conditionBlock value: c) > ifTrue: [httpSafeStream nextPut: (Character value: c charCode)] > ifFalse: [ > encodedStream text; reset. > encodedStream nextPut: c. > encodedStream position: 0. > encodedStream binary. > cont _ encodedStream contents. > cont do: [:byte | > httpSafeStream nextPut: $%. > httpSafeStream nextPut: (byte // 16) asHexDigit. > httpSafeStream nextPut: (byte \\ 16) asHexDigit. > ]. > ]. > ]. > ^ httpSafeStream contents. Yep. The whole thing could be avoided for ASCII strings with a single #indexOfAnyOf: test. This would solve your original question, because as long as you do not use non-ASCII characters it would be fast. - Bert - _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
I already wrote a squeak plugin which implements this call (only ascii
chars) as an primitive. It is available compiled as dll for windows on: http://monticello.dominicletz.de/fcgi/SeasidePlugin.dll the bindings and the plugin source are in: http://monticello.dominicletz.de/fcgi/SeasidePlugin-dl.1.mcz This works very well for me and has removed that entry complete from my message tallies On Mon, 19 Mar 2007 13:44:35 +0100, Bert Freudenberg <[hidden email]> wrote: > > On Mar 19, 2007, at 13:34 , Philippe Marschall wrote: > > > 2007/3/19, Bert Freudenberg <[hidden email]>: > >> > >> On Mar 19, 2007, at 12:58 , Philippe Marschall wrote: > >> > >> > 2007/3/19, Bert Freudenberg <[hidden email]>: > >> >> > >> >> On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: > >> >> > >> >> > encodeForHTTP. > >> >> > > >> >> > So what do you find more important, that Seaside is fast or > >> that is > >> >> > supports non-ascii urls? > >> >> > >> >> I'm pretty sure you could have your cake and eat it, too, if you > >> >> rewrite that method > >> > > >> > We don't do overrides anymore. > >> > > >> >> using #indexOfAnyOf: and CharacterSets, which are > >> >> very fast. > >> > > >> > You would do this as a replacement for #isSafeForHTTP? Why not > >> just a > >> > boolean Array and lookup by #charCode? > >> > >> Because it's much faster? > > > > A lookup in a boolean Array would be > > - a bit and for #charCode > > - an small integer comparison for < > > - #at: on an array > > how much faster can you get? > > A single primitive invocation for the whole string. > > >> > Do you see any optimization potential in > >> > #encodeForHTTPWithTextEncoding:conditionBlock: ? > >> > >> If I'd see the code, probably. > > > > encodeForHTTPWithTextEncoding: encodingName conditionBlock: > > conditionBlock > > "change dangerous characters to their %XX form, for use in HTTP > > transactions" > > > > | httpSafeStream encodedStream cont | > > httpSafeStream _ WriteStream on: (String new). > > encodedStream _ MultiByteBinaryOrTextStream on: (String new: 6). > > encodedStream converter: (TextConverter newForEncoding: > > encodingName). > > self do: [:c | > > (conditionBlock value: c) > > ifTrue: [httpSafeStream nextPut: (Character > > value: c charCode)] ifFalse: [ > > encodedStream text; reset. > > encodedStream nextPut: c. > > encodedStream position: 0. > > encodedStream binary. > > cont _ encodedStream contents. > > cont do: [:byte | > > httpSafeStream nextPut: $%. > > httpSafeStream nextPut: (byte // > > 16) asHexDigit. > > httpSafeStream nextPut: (byte \\ > > 16) asHexDigit. > > ]. > > ]. > > ]. > > ^ httpSafeStream contents. > > Yep. The whole thing could be avoided for ASCII strings with a single > #indexOfAnyOf: test. This would solve your original question, because > as long as you do not use non-ASCII characters it would be fast. > > - Bert - > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Bert Freudenberg
2007/3/19, Bert Freudenberg <[hidden email]>:
> > On Mar 19, 2007, at 13:34 , Philippe Marschall wrote: > > > 2007/3/19, Bert Freudenberg <[hidden email]>: > >> > >> On Mar 19, 2007, at 12:58 , Philippe Marschall wrote: > >> > >> > 2007/3/19, Bert Freudenberg <[hidden email]>: > >> >> > >> >> On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: > >> >> > >> >> > encodeForHTTP. > >> >> > > >> >> > So what do you find more important, that Seaside is fast or > >> that is > >> >> > supports non-ascii urls? > >> >> > >> >> I'm pretty sure you could have your cake and eat it, too, if you > >> >> rewrite that method > >> > > >> > We don't do overrides anymore. > >> > > >> >> using #indexOfAnyOf: and CharacterSets, which are > >> >> very fast. > >> > > >> > You would do this as a replacement for #isSafeForHTTP? Why not > >> just a > >> > boolean Array and lookup by #charCode? > >> > >> Because it's much faster? > > > > A lookup in a boolean Array would be > > - a bit and for #charCode > > - an small integer comparison for < > > - #at: on an array > > how much faster can you get? > > A single primitive invocation for the whole string. > > >> > Do you see any optimization potential in > >> > #encodeForHTTPWithTextEncoding:conditionBlock: ? > >> > >> If I'd see the code, probably. > > > > encodeForHTTPWithTextEncoding: encodingName conditionBlock: > > conditionBlock > > "change dangerous characters to their %XX form, for use in HTTP > > transactions" > > > > | httpSafeStream encodedStream cont | > > httpSafeStream _ WriteStream on: (String new). > > encodedStream _ MultiByteBinaryOrTextStream on: (String new: 6). > > encodedStream converter: (TextConverter newForEncoding: > > encodingName). > > self do: [:c | > > (conditionBlock value: c) > > ifTrue: [httpSafeStream nextPut: (Character value: c charCode)] > > ifFalse: [ > > encodedStream text; reset. > > encodedStream nextPut: c. > > encodedStream position: 0. > > encodedStream binary. > > cont _ encodedStream contents. > > cont do: [:byte | > > httpSafeStream nextPut: $%. > > httpSafeStream nextPut: (byte // 16) asHexDigit. > > httpSafeStream nextPut: (byte \\ 16) asHexDigit. > > ]. > > ]. > > ]. > > ^ httpSafeStream contents. > > Yep. The whole thing could be avoided for ASCII strings with a single > #indexOfAnyOf: test. This would solve your original question, because > as long as you do not use non-ASCII characters it would be fast. I owe you one, Pier just went from 8.74 request/sec to 19.24 request/sec. Philippe > - Bert - > > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Mar 19, 2007, at 15:56 , Philippe Marschall wrote: > 2007/3/19, Bert Freudenberg <[hidden email]>: >> >> On Mar 19, 2007, at 13:34 , Philippe Marschall wrote: >> >> > 2007/3/19, Bert Freudenberg <[hidden email]>: >> >> >> >> On Mar 19, 2007, at 12:58 , Philippe Marschall wrote: >> >> >> >> > 2007/3/19, Bert Freudenberg <[hidden email]>: >> >> >> >> >> >> On Mar 19, 2007, at 11:58 , Philippe Marschall wrote: >> >> >> >> >> >> > encodeForHTTP. >> >> >> > >> >> >> > So what do you find more important, that Seaside is fast or >> >> that is >> >> >> > supports non-ascii urls? >> >> >> >> >> >> I'm pretty sure you could have your cake and eat it, too, if >> you >> >> >> rewrite that method >> >> > >> >> > We don't do overrides anymore. >> >> > >> >> >> using #indexOfAnyOf: and CharacterSets, which are >> >> >> very fast. >> >> > >> >> > You would do this as a replacement for #isSafeForHTTP? Why not >> >> just a >> >> > boolean Array and lookup by #charCode? >> >> >> >> Because it's much faster? >> > >> > A lookup in a boolean Array would be >> > - a bit and for #charCode >> > - an small integer comparison for < >> > - #at: on an array >> > how much faster can you get? >> >> A single primitive invocation for the whole string. >> >> >> > Do you see any optimization potential in >> >> > #encodeForHTTPWithTextEncoding:conditionBlock: ? >> >> >> >> If I'd see the code, probably. >> > >> > encodeForHTTPWithTextEncoding: encodingName conditionBlock: >> > conditionBlock >> > "change dangerous characters to their %XX form, for use in >> HTTP >> > transactions" >> > >> > | httpSafeStream encodedStream cont | >> > httpSafeStream _ WriteStream on: (String new). >> > encodedStream _ MultiByteBinaryOrTextStream on: (String >> new: 6). >> > encodedStream converter: (TextConverter newForEncoding: >> > encodingName). >> > self do: [:c | >> > (conditionBlock value: c) >> > ifTrue: [httpSafeStream nextPut: >> (Character value: c charCode)] >> > ifFalse: [ >> > encodedStream text; reset. >> > encodedStream nextPut: c. >> > encodedStream position: 0. >> > encodedStream binary. >> > cont _ encodedStream contents. >> > cont do: [:byte | >> > httpSafeStream nextPut: $%. >> > httpSafeStream nextPut: >> (byte // 16) asHexDigit. >> > httpSafeStream nextPut: >> (byte \\ 16) asHexDigit. >> > ]. >> > ]. >> > ]. >> > ^ httpSafeStream contents. >> >> Yep. The whole thing could be avoided for ASCII strings with a single >> #indexOfAnyOf: test. This would solve your original question, because >> as long as you do not use non-ASCII characters it would be fast. > > I owe you one, Pier just went from 8.74 request/sec to 19.24 > request/sec. Now that's nice to hear :) - Bert - _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
On Mon, 19 Mar 2007 11:58:11 +0100, Philippe Marschall wrote:
> Hi > > Have you ever tried a counter in a recent version of Seaside? I don't > know about you but for such a simple application it is way too slow > for my taste. As part of the 2.8 cycle we look into ways of making > Seaside faster. > > Attached you will find several traces for the counter application. > As you can see, an awful lot of time is spent to convert URLs to > String. Of that most time is spent in#encodeForHTTP. I know how to speed up #isSafeForHTTP :) Could you make me the traces again, with the following "correction": there seems to be an #ensure: (at the top of tree) which seems to obscure, what details are touched by #encodeForHTTP and #isSafeForHTTP. /Klaus > So what do you find more important, that Seaside is fast or that is > supports non-ascii urls? > > Cheers > Philippe > > P.S.: the original mail had several traces more but was apparently too > big, maybe it will arrive later. _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
2007/3/19, Klaus D. Witzel <[hidden email]>:
> On Mon, 19 Mar 2007 11:58:11 +0100, Philippe Marschall wrote: > > Hi > > > > Have you ever tried a counter in a recent version of Seaside? I don't > > know about you but for such a simple application it is way too slow > > for my taste. As part of the 2.8 cycle we look into ways of making > > Seaside faster. > > > > Attached you will find several traces for the counter application. > > As you can see, an awful lot of time is spent to convert URLs to > > String. Of that most time is spent in#encodeForHTTP. > > I know how to speed up #isSafeForHTTP :) At the string level I now use #isByteString + #indexOfAnyOf: with a character set of unsafe latin1 characters. At the character level I use (aCharacter charCode < 128 and: [ (unsafeCharacterSet includes: each) not ]) works pretty dandy so far. > Could you make me the traces > again, with the following "correction": there seems to be an #ensure: (at > the top of tree) which seems to obscure, That's from the MessageTally. What excatly do you want to have profiled? > what details are touched by > #encodeForHTTP and #isSafeForHTTP. URL generation for anchors and stuff. Philippe. > /Klaus > > > So what do you find more important, that Seaside is fast or that is > > supports non-ascii urls? > > > > Cheers > > Philippe > > > > P.S.: the original mail had several traces more but was apparently too > > big, maybe it will arrive later. > > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Mon, 19 Mar 2007 17:17:56 +0100, Philippe Marschall wrote:
> 2007/3/19, Klaus D. Witzel <[hidden email]>: >> On Mon, 19 Mar 2007 11:58:11 +0100, Philippe Marschall wrote: >> > Hi >> > >> > Have you ever tried a counter in a recent version of Seaside? I don't >> > know about you but for such a simple application it is way too slow >> > for my taste. As part of the 2.8 cycle we look into ways of making >> > Seaside faster. >> > >> > Attached you will find several traces for the counter application. >> > As you can see, an awful lot of time is spent to convert URLs to >> > String. Of that most time is spent in#encodeForHTTP. >> >> I know how to speed up #isSafeForHTTP :) > > At the string level I now use #isByteString + #indexOfAnyOf: with a > character set of unsafe latin1 characters. > At the character level I use > > (aCharacter charCode < 128 and: [ (unsafeCharacterSet includes: each) > not ]) > > works pretty dandy so far. Sure. Must be so, for #isByteString cases :) >> Could you make me the traces >> again, with the following "correction": there seems to be an #ensure: >> (at >> the top of tree) which seems to obscure, > > That's from the MessageTally. Never seen that; do you see it in (MessageTally spyOn: [12345 timesRepeat: [Processor nextReadyProcess]]) ? > What excatly do you want to have profiled? The levels underneath #encodeForHTTP and #isSafeForHTTP, for all the cases for which #isByteString returnes false. Exactly enough? Cheers Klaus >> what details are touched by >> #encodeForHTTP and #isSafeForHTTP. > > URL generation for anchors and stuff. > > Philippe. > >> /Klaus >> >> > So what do you find more important, that Seaside is fast or that is >> > supports non-ascii urls? >> > >> > Cheers >> > Philippe >> > >> > P.S.: the original mail had several traces more but was apparently too >> > big, maybe it will arrive later. >> >> >> _______________________________________________ >> Seaside mailing list >> [hidden email] >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >> _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
2007/3/19, Klaus D. Witzel <[hidden email]>:
> On Mon, 19 Mar 2007 17:17:56 +0100, Philippe Marschall wrote: > > 2007/3/19, Klaus D. Witzel <[hidden email]>: > >> On Mon, 19 Mar 2007 11:58:11 +0100, Philippe Marschall wrote: > >> > Hi > >> > > >> > Have you ever tried a counter in a recent version of Seaside? I don't > >> > know about you but for such a simple application it is way too slow > >> > for my taste. As part of the 2.8 cycle we look into ways of making > >> > Seaside faster. > >> > > >> > Attached you will find several traces for the counter application. > >> > As you can see, an awful lot of time is spent to convert URLs to > >> > String. Of that most time is spent in#encodeForHTTP. > >> > >> I know how to speed up #isSafeForHTTP :) > > > > At the string level I now use #isByteString + #indexOfAnyOf: with a > > character set of unsafe latin1 characters. > > At the character level I use > > > > (aCharacter charCode < 128 and: [ (unsafeCharacterSet includes: each) > > not ]) > > > > works pretty dandy so far. > > Sure. Must be so, for #isByteString cases :) > > >> Could you make me the traces > >> again, with the following "correction": there seems to be an #ensure: > >> (at > >> the top of tree) which seems to obscure, > > > > That's from the MessageTally. > > Never seen that; do you see it in (MessageTally spyOn: [12345 timesRepeat: > [Processor nextReadyProcess]]) ? No, I think it comes from the way SeasidePlatformSupport uses MessageTally. If I directly use MessageTally spyOn: I get debuggers in the world update loop and red morphs with yellow crosses. > > What excatly do you want to have profiled? > > The levels underneath #encodeForHTTP and #isSafeForHTTP, for all the cases > for which #isByteString returnes false. Exactly enough? Well I just got rid of them all. If it isn't an ASCII character then it is not safe for HTTP. No need to go into EncodedCharSets and friends. If it is an ASCII character, well, there is the CharacterSet of unsafe latin1 characters that does a pretty fast lookup. Philippe > Cheers > Klaus > > >> what details are touched by > >> #encodeForHTTP and #isSafeForHTTP. > > > > URL generation for anchors and stuff. > > > > Philippe. > > > >> /Klaus > >> > >> > So what do you find more important, that Seaside is fast or that is > >> > supports non-ascii urls? > >> > > >> > Cheers > >> > Philippe > >> > > >> > P.S.: the original mail had several traces more but was apparently too > >> > big, maybe it will arrive later. > >> > >> > >> _______________________________________________ > >> Seaside mailing list > >> [hidden email] > >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > >> > > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Mon, 19 Mar 2007 18:17:31 +0100, Philippe Marschall wrote:
> 2007/3/19, Klaus D. Witzel <[hidden email]>: >> On Mon, 19 Mar 2007 17:17:56 +0100, Philippe Marschall wrote: ... >> > At the string level I now use #isByteString + #indexOfAnyOf: with a >> > character set of unsafe latin1 characters. >> > At the character level I use >> > >> > (aCharacter charCode < 128 and: [ (unsafeCharacterSet includes: each) >> > not ]) >> > >> > works pretty dandy so far. >> >> Sure. Must be so, for #isByteString cases :) >> >> >> Could you make me the traces >> >> again, with the following "correction": there seems to be an #ensure: >> >> (at >> >> the top of tree) which seems to obscure, >> > >> > That's from the MessageTally. >> >> Never seen that; do you see it in (MessageTally spyOn: [12345 >> timesRepeat: >> [Processor nextReadyProcess]]) ? > > No, I think it comes from the way SeasidePlatformSupport uses > MessageTally. If I directly use MessageTally spyOn: I get debuggers in > the world update loop and red morphs with yellow crosses. I'm afraid I always try to avoid such dangerous things (red morphs with yellow crosses :) Anyways, thanks now I can see where #ensure: in your traces comes from. >> > What excatly do you want to have profiled? >> >> The levels underneath #encodeForHTTP and #isSafeForHTTP, for all the >> cases >> for which #isByteString returnes false. Exactly enough? > > Well I just got rid of them all. If it isn't an ASCII character then > it is not safe for HTTP. No need to go into EncodedCharSets and > friends. If it is an ASCII character, well, there is the CharacterSet > of unsafe latin1 characters that does a pretty fast lookup. You must be happy then, as long as Seaside just creates responses and sends them to some browser ;-) How about the request side, header parsing, request body parsing? No i18n anywhere in request data processing, no #isLetter, no #isDigit ? /Klaus > Philippe > _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
2007/3/19, Klaus D. Witzel <[hidden email]>:
> On Mon, 19 Mar 2007 18:17:31 +0100, Philippe Marschall wrote: > > 2007/3/19, Klaus D. Witzel <[hidden email]>: > >> On Mon, 19 Mar 2007 17:17:56 +0100, Philippe Marschall wrote: > ... > >> > At the string level I now use #isByteString + #indexOfAnyOf: with a > >> > character set of unsafe latin1 characters. > >> > At the character level I use > >> > > >> > (aCharacter charCode < 128 and: [ (unsafeCharacterSet includes: each) > >> > not ]) > >> > > >> > works pretty dandy so far. > >> > >> Sure. Must be so, for #isByteString cases :) > >> > >> >> Could you make me the traces > >> >> again, with the following "correction": there seems to be an #ensure: > >> >> (at > >> >> the top of tree) which seems to obscure, > >> > > >> > That's from the MessageTally. > >> > >> Never seen that; do you see it in (MessageTally spyOn: [12345 > >> timesRepeat: > >> [Processor nextReadyProcess]]) ? > > > > No, I think it comes from the way SeasidePlatformSupport uses > > MessageTally. If I directly use MessageTally spyOn: I get debuggers in > > the world update loop and red morphs with yellow crosses. > > I'm afraid I always try to avoid such dangerous things (red morphs with > yellow crosses :) Anyways, thanks now I can see where #ensure: in your > traces comes from. > > >> > What excatly do you want to have profiled? > >> > >> The levels underneath #encodeForHTTP and #isSafeForHTTP, for all the > >> cases > >> for which #isByteString returnes false. Exactly enough? > > > > Well I just got rid of them all. If it isn't an ASCII character then > > it is not safe for HTTP. No need to go into EncodedCharSets and > > friends. If it is an ASCII character, well, there is the CharacterSet > > of unsafe latin1 characters that does a pretty fast lookup. > > You must be happy then, as long as Seaside just creates responses and > sends them to some browser ;-) > > How about the request side, header parsing, request body parsing? No i18n > anywhere in request data processing, no #isLetter, no #isDigit ? only #unescapePercents which hasn't turned out to be a bottleneck so far. Philippe > /Klaus > > > Philippe > > > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
What drawback(s) non-ascii url will provide? What we loose by choosing that?
Sebastian Sastre > -----Mensaje original----- > De: [hidden email] > [mailto:[hidden email]] En nombre > de Philippe Marschall > Enviado el: Lunes, 19 de Marzo de 2007 07:47 > Para: Seaside - general discussion > Asunto: [Seaside] i10n or speed? > > Hi > > Have you ever tried a counter in a recent version of Seaside? > I don't know about you but for such a simple application it > is way too slow for my taste. As part of the 2.8 cycle we > look into ways of making Seaside faster. > > Attached you will find several traces for the counter application. > As you can see, an awful lot of time is spent to convert URLs > to String. Of that most time is spent in#encodeForHTTP. > > So what do you find more important, that Seaside is fast or > that is supports non-ascii urls? > > Cheers > Philippe > _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
On Mon, Mar 19, 2007 at 11:47:01AM +0100, Philippe Marschall wrote:
> [...] > So what do you find more important, that Seaside is fast or that is > supports non-ascii urls? Could it not be configurable? /Marcus (I'm new, hi all) -- Marcus Ahnve Blog: http://marcus.ahnve.net _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
On Mar 19, 2007, at 4:47 AM, Philippe Marschall wrote: > > So what do you find more important, that Seaside is fast or that is > supports non-ascii urls? Speed... I don't of any compelling no ascii urls, but it could be an option if some wanted to have unicode urls ;) - Brian > > Cheers > Philippe<trace.txt><trace1.txt><trace2.txt><trace3.txt><trace4.txt><tr > ace5.txt>_______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |