[Seaside] i10n or speed?
Philippe Marschall
philippe.marschall at gmail.com
Mon Mar 19 10:58:11 UTC 2007
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.
-------------- next part --------------
- 158 tallies, 82 msec.
**Tree**
51.3% {42ms} MessageTally>>spyEvery:on:
|51.3% {42ms} BlockContext>>ensure:
| 51.3% {42ms} MethodContext>>tempAt:put:
48.1% {39ms} WASession>>incomingRequest:
48.1% {39ms} WASession>>responseForRequest:
48.1% {39ms} WASession>>performRequest:
48.1% {39ms} WASession>>start:
48.1% {39ms} WARenderLoopMain>>start:
48.1% {39ms} WARenderLoop>>run
48.1% {39ms} WARender>>go
48.1% {39ms} WARender>>render
46.8% {38ms} WARender>>buildResponse
44.9% {37ms} WAToolFrame(WAPresenter)>>renderWithContext:
44.9% {37ms} WAToolFrame>>renderContentOn:
19.6% {16ms} WADivTag(WATagBrush)>>with:
|19.6% {16ms} WADivTag(WATagBrush)>>openTag
| 19.6% {16ms} WAHtmlStreamDocument>>openTag:attributes:
| 19.6% {16ms} WAHtmlStreamDocument>>bodyStream
| 19.6% {16ms} WARenderedHtmlRoot(WAHtmlRoot)>>writeOn:
| 19.6% {16ms} WARenderedHtmlRoot(WAHtmlRoot)>>writeHeadOn:
| 19.6% {16ms} WALinkElement(WAHtmlElement)>>writeOn:
| 19.6% {16ms} WALinkElement(WAHtmlElement)>>printOpenTagOn:
| 17.7% {15ms} WAHtmlAttributes>>writeOn:
| 17.7% {15ms} WAHtmlAttributes>>writeKey:value:on:
| 17.7% {15ms} WACanvas class>>encode:to:
| 16.5% {14ms} WAUrl>>displayString
| 16.5% {14ms} WAUrl>>urlWithQueryString
| 16.5% {14ms} WAUrl>>pathString
| 16.5% {14ms} ByteString(String)>>encodeForHTTP
| 12.7% {10ms} ByteString(String)>>encodeForHTTPWithTextEncoding:conditionBlock:
| |10.1% {8ms} TextConverter class>>newForEncoding:
| | 6.3% {5ms} Array(SequenceableCollection)>>includes:
| | |6.3% {5ms} Array(SequenceableCollection)>>indexOf:
| | | 6.3% {5ms} Array(SequenceableCollection)>>indexOf:ifAbsent:
| | | 6.3% {5ms} Array(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
| | 3.2% {3ms} TextConverter class(Behavior)>>allSubclasses
| 3.8% {3ms} Character>>isSafeForHTTP
| 3.8% {3ms} Character>>isAlphaNumeric
| 3.8% {3ms} Character>>isLetter
| 3.2% {3ms} Latin1Environment class(LanguageEnvironment class)>>isLetter:
| 3.2% {3ms} Unicode class>>isLetter:
| 3.2% {3ms} SparseLargeTable>>at:
| 2.5% {2ms} SparseLargeTable>>pvtCheckIndex:
19.0% {16ms} WAToolFrame>>renderToolbarOn:
|7.6% {6ms} WAToolFrame>>renderToolsOn:
| |7.6% {6ms} WAAnchorTag>>with:
| | 7.0% {6ms} WAAnchorTag(WATagBrush)>>with:
| | 7.0% {6ms} WAAnchorTag(WATagBrush)>>openTag
| | 7.0% {6ms} WAHtmlStreamDocument>>openTag:attributes:
| | 7.0% {6ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
| | 7.0% {6ms} WAHtmlAttributes>>writeOn:
| | 7.0% {6ms} WAHtmlAttributes>>writeKey:value:on:
| | 7.0% {6ms} WACanvas class>>encode:to:
| | 6.3% {5ms} WAUrl>>displayString
| | 6.3% {5ms} WAUrl>>urlWithQueryString
| | 4.4% {4ms} WAUrl>>queryString
| | 4.4% {4ms} WAUrl>>parameterString
| | 3.8% {3ms} ByteString(String)>>encodeForHTTP
| | 3.8% {3ms} ByteString(String)>>encodeForHTTPWithTextEncoding:conditionBlock:
| | 3.8% {3ms} TextConverter class>>newForEncoding:
| | 3.2% {3ms} TextConverter class(Behavior)>>allSubclasses
|5.7% {5ms} WAToolFrame>>renderActionsOn:
| |5.7% {5ms} WAAnchorTag>>on:of:
| | 5.1% {4ms} WAAnchorTag>>with:
| | 5.1% {4ms} WAAnchorTag(WATagBrush)>>with:
| | 5.1% {4ms} WAAnchorTag(WATagBrush)>>openTag
| | 5.1% {4ms} WAHtmlStreamDocument>>openTag:attributes:
| | 5.1% {4ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
| | 5.1% {4ms} WAHtmlAttributes>>writeOn:
| | 5.1% {4ms} WAHtmlAttributes>>writeKey:value:on:
| | 5.1% {4ms} WACanvas class>>encode:to:
| | 4.4% {4ms} WAUrl>>displayString
| | 4.4% {4ms} WAUrl>>urlWithQueryString
| | 3.2% {3ms} WAUrl>>queryString
| | 3.2% {3ms} WAUrl>>parameterString
| | 2.5% {2ms} ByteString(String)>>encodeForHTTP
| | 2.5% {2ms} ByteString(String)>>encodeForHTTPWithTextEncoding:conditionBlock:
| | 2.5% {2ms} TextConverter class>>newForEncoding:
|3.2% {3ms} WAToolFrame>>renderNewSessionOn:
| 3.2% {3ms} WAAnchorTag>>with:
| 3.2% {3ms} WAAnchorTag(WATagBrush)>>with:
| 3.2% {3ms} WAAnchorTag(WATagBrush)>>openTag
| 3.2% {3ms} WAHtmlStreamDocument>>openTag:attributes:
| 3.2% {3ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
| 3.2% {3ms} WAHtmlAttributes>>writeOn:
| 3.2% {3ms} WAHtmlAttributes>>writeKey:value:on:
| 3.2% {3ms} WACanvas class>>encode:to:
| 3.2% {3ms} WAUrl>>displayString
| 3.2% {3ms} WAUrl>>urlWithQueryString
6.3% {5ms} WAToolFrame>>renderChildOn:
6.3% {5ms} WARenderCanvas(WACanvas)>>render:
6.3% {5ms} WACounter(WAComponent)>>renderOn:
6.3% {5ms} WACounter(WAPresenter)>>renderWithContext:
6.3% {5ms} WACounter>>renderContentOn:
6.3% {5ms} WAAnchorTag>>with:
6.3% {5ms} WAAnchorTag(WATagBrush)>>with:
5.7% {5ms} WAAnchorTag(WATagBrush)>>openTag
5.7% {5ms} WAHtmlStreamDocument>>openTag:attributes:
5.7% {5ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
5.7% {5ms} WAHtmlAttributes>>writeOn:
5.7% {5ms} WAHtmlAttributes>>writeKey:value:on:
5.7% {5ms} WACanvas class>>encode:to:
5.7% {5ms} WAUrl>>displayString
5.7% {5ms} WAUrl>>urlWithQueryString
3.8% {3ms} WAUrl>>queryString
3.8% {3ms} WAUrl>>parameterString
3.2% {3ms} ByteString(String)>>encodeForHTTP
2.5% {2ms} Character>>isSafeForHTTP
2.5% {2ms} Character>>isAlphaNumeric
2.5% {2ms} Character>>isLetter
2.5% {2ms} Latin1Environment class(LanguageEnvironment class)>>isLetter:
2.5% {2ms} Unicode class>>isLetter:
**Leaves**
51.3% {42ms} MethodContext>>tempAt:put:
6.3% {5ms} Array(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
3.2% {3ms} Character>>isOctetCharacter
2.5% {2ms} Character>>charCode
2.5% {2ms} SparseLargeTable>>pvtCheckIndex:
**Memory**
old +87,664 bytes
young -42,708 bytes
used +44,956 bytes
free -44,956 bytes
**GCs**
full 0 totalling 0ms (0.0% uptime)
incr 8 totalling 11ms (13.0% uptime), avg 1.0ms
tenures 1 (avg 8 GCs/tenure)
root table 0 overflows
-------------- next part --------------
- 154 tallies, 79 msec.
**Tree**
51.3% {41ms} MessageTally>>spyEvery:on:
|51.3% {41ms} BlockContext>>ensure:
| 51.3% {41ms} MethodContext>>tempAt:put:
48.1% {38ms} WASession>>incomingRequest:
48.1% {38ms} WASession>>responseForRequest:
48.1% {38ms} WASession>>performRequest:
48.1% {38ms} WASession>>start:
48.1% {38ms} WARenderLoopMain>>start:
48.1% {38ms} WARenderLoop>>run
48.1% {38ms} WARender>>go
48.1% {38ms} WARender>>render
46.8% {37ms} WARender>>buildResponse
44.8% {35ms} WAToolFrame(WAPresenter)>>renderWithContext:
44.8% {35ms} WAToolFrame>>renderContentOn:
22.1% {17ms} WAToolFrame>>renderToolbarOn:
|7.8% {6ms} WAToolFrame>>renderToolsOn:
| |7.8% {6ms} WAAnchorTag>>with:
| | 7.8% {6ms} WAAnchorTag(WATagBrush)>>with:
| | 7.8% {6ms} WAAnchorTag(WATagBrush)>>openTag
| | 7.8% {6ms} WAHtmlStreamDocument>>openTag:attributes:
| | 7.8% {6ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
| | 7.8% {6ms} WAHtmlAttributes>>writeOn:
| | 7.8% {6ms} WAHtmlAttributes>>writeKey:value:on:
| | 7.8% {6ms} WACanvas class>>encode:to:
| | 5.8% {5ms} WAUrl>>displayString
| | 5.8% {5ms} WAUrl>>urlWithQueryString
| | 3.2% {3ms} WAUrl>>queryString
| | 3.2% {3ms} WAUrl>>parameterString
| | 3.2% {3ms} ByteString(String)>>encodeForHTTP
| | 3.2% {3ms} ByteString(String)>>encodeForHTTPWithTextEncoding:conditionBlock:
| | 2.6% {2ms} TextConverter class>>newForEncoding:
|7.1% {6ms} WAToolFrame>>renderActionsOn:
| |7.1% {6ms} WAAnchorTag>>on:of:
| | 5.8% {5ms} WAAnchorTag>>with:
| | 5.2% {4ms} WAAnchorTag(WATagBrush)>>with:
| | 5.2% {4ms} WAAnchorTag(WATagBrush)>>openTag
| | 5.2% {4ms} WAHtmlStreamDocument>>openTag:attributes:
| | 5.2% {4ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
| | 5.2% {4ms} WAHtmlAttributes>>writeOn:
| | 5.2% {4ms} WAHtmlAttributes>>writeKey:value:on:
| | 5.2% {4ms} WACanvas class>>encode:to:
| | 3.9% {3ms} WAUrl>>displayString
| | 3.9% {3ms} WAUrl>>urlWithQueryString
| | 2.6% {2ms} WAUrl>>queryString
| | 2.6% {2ms} WAUrl>>parameterString
|3.2% {3ms} WAToolFrame>>renderNewSessionOn:
| 3.2% {3ms} WAAnchorTag>>with:
| 3.2% {3ms} WAAnchorTag(WATagBrush)>>with:
| 3.2% {3ms} WAAnchorTag(WATagBrush)>>openTag
| 3.2% {3ms} WAHtmlStreamDocument>>openTag:attributes:
| 3.2% {3ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
| 3.2% {3ms} WAHtmlAttributes>>writeOn:
| 3.2% {3ms} WAHtmlAttributes>>writeKey:value:on:
| 3.2% {3ms} WACanvas class>>encode:to:
| 3.2% {3ms} WAUrl>>displayString
| 3.2% {3ms} WAUrl>>urlWithQueryString
12.3% {10ms} WADivTag(WATagBrush)>>with:
|12.3% {10ms} WADivTag(WATagBrush)>>openTag
| 12.3% {10ms} WAHtmlStreamDocument>>openTag:attributes:
| 12.3% {10ms} WAHtmlStreamDocument>>bodyStream
| 12.3% {10ms} WARenderedHtmlRoot(WAHtmlRoot)>>writeOn:
| 11.7% {9ms} WARenderedHtmlRoot(WAHtmlRoot)>>writeHeadOn:
| 11.7% {9ms} WALinkElement(WAHtmlElement)>>writeOn:
| 11.7% {9ms} WALinkElement(WAHtmlElement)>>printOpenTagOn:
| 11.7% {9ms} WAHtmlAttributes>>writeOn:
| 11.0% {9ms} WAHtmlAttributes>>writeKey:value:on:
| 11.0% {9ms} WACanvas class>>encode:to:
| 7.8% {6ms} WAUrl>>displayString
| |7.8% {6ms} WAUrl>>urlWithQueryString
| | 7.8% {6ms} WAUrl>>pathString
| | 7.8% {6ms} ByteString(String)>>encodeForHTTP
| | 7.1% {6ms} ByteString(String)>>encodeForHTTPWithTextEncoding:conditionBlock:
| | 6.5% {5ms} TextConverter class>>newForEncoding:
| | 3.9% {3ms} TextConverter class(Behavior)>>allSubclasses
| | 2.6% {2ms} OrderedCollection(Collection)>>asSet
| | 2.6% {2ms} Set class(Collection class)>>withAll:
| | 2.6% {2ms} Set(Collection)>>addAll:
| 3.2% {3ms} Array(SequenceableCollection)>>at:ifAbsent:
| 2.6% {2ms} primitives
10.4% {8ms} WAToolFrame>>renderChildOn:
10.4% {8ms} WARenderCanvas(WACanvas)>>render:
10.4% {8ms} WACounter(WAComponent)>>renderOn:
10.4% {8ms} WACounter(WAPresenter)>>renderWithContext:
10.4% {8ms} WACounter>>renderContentOn:
10.4% {8ms} WAAnchorTag>>with:
10.4% {8ms} WAAnchorTag(WATagBrush)>>with:
10.4% {8ms} WAAnchorTag(WATagBrush)>>openTag
10.4% {8ms} WAHtmlStreamDocument>>openTag:attributes:
10.4% {8ms} WAHtmlStreamDocument>>writeOpenTag:attributes:on:
10.4% {8ms} WAHtmlAttributes>>writeOn:
10.4% {8ms} WAHtmlAttributes>>writeKey:value:on:
10.4% {8ms} WACanvas class>>encode:to:
8.4% {7ms} WAUrl>>displayString
8.4% {7ms} WAUrl>>urlWithQueryString
5.8% {5ms} WAUrl>>pathString
|5.8% {5ms} ByteString(String)>>encodeForHTTP
| 5.8% {5ms} ByteString(String)>>encodeForHTTPWithTextEncoding:conditionBlock:
| 5.8% {5ms} TextConverter class>>newForEncoding:
| 5.8% {5ms} TextConverter class(Behavior)>>allSubclasses
| 4.5% {4ms} OrderedCollection(Collection)>>asSet
| 4.5% {4ms} Set class(Collection class)>>withAll:
| 4.5% {4ms} Set(Collection)>>addAll:
| 4.5% {4ms} Set>>add:
| 3.2% {3ms} primitives
2.6% {2ms} WAUrl>>queryString
2.6% {2ms} WAUrl>>parameterString
2.6% {2ms} ByteString(String)>>encodeForHTTP
**Leaves**
51.3% {41ms} MethodContext>>tempAt:put:
7.1% {6ms} Array(SequenceableCollection)>>at:ifAbsent:
5.2% {4ms} Set>>add:
3.2% {3ms} SmallInteger(Magnitude)>>between:and:
**Memory**
old +82,084 bytes
young -36,428 bytes
used +45,656 bytes
free -45,656 bytes
**GCs**
full 0 totalling 0ms (0.0% uptime)
incr 8 totalling 10ms (13.0% uptime), avg 1.0ms
tenures 1 (avg 8 GCs/tenure)
root table 0 overflows
More information about the seaside
mailing list