Hi
I have a case where the #& in Socket >> #waitForSendDoneFor: shows up in
a tally (see attachment). I'm able to push about 1 Mbyte/s more when I
replace that with #and:. So my question is this really needed or should
I file a bug and send a patch?
This is Pharo 1.1.1 BTW.
Cheers
Philippe
- 30001 tallies, 30001 msec.
**Tree**
--------------------------------
Process: (70) AJP worker 1: Socket>>waitForDataIfClosed:
--------------------------------
9.5% {2850ms} AJPPharoSocketLoop(AJPLoop)>>loop
9.4% {2820ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
4.2% {1260ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|2.6% {780ms} AJPPharoBufferDataStream>>flush
| |2.6% {780ms} AJPPharoSocketWriteStream>>flush
| | 2.6% {780ms} AJPPharoSocketWriteStream>>sendBuffer
| | 2.6% {780ms} Socket>>sendData:count:
| | 2.0% {600ms} primitives
|1.1% {330ms} AJPResponseWriter>>sendBodyChunk:
3.7% {1110ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|3.7% {1110ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
| 1.4% {420ms} AJPPharoAdaptor(AJPAdaptor)>>responseFrom:
| |1.3% {390ms} AJPResponse class>>status:headers:body:
| 1.2% {360ms} AJPPharoAdaptor(WAServerAdaptor)>>handle:
| |1.2% {360ms} AJPPharoAdaptor(WAServerAdaptor)>>handleRequest:
| | 1.2% {360ms} WADispatcher(WARequestHandler)>>handle:
| | 1.1% {330ms} WADispatcher>>handleFiltered:
| | 1.1% {330ms} WADispatcher>>handleFiltered:named:
| 1.0% {300ms} AJPPharoAdaptor(WAServerAdaptor)>>contextFor:
1.2% {360ms} AJPPharoBufferDataStream>>hintNewTextPacket
1.2% {360ms} AJPPharoSocketReadStream>>readPacket
--------------------------------
Process: (70) AJP worker 11: Socket>>waitForDataIfClosed:
--------------------------------
8.1% {2430ms} AJPPharoSocketLoop(AJPLoop)>>loop
8.0% {2400ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
2.8% {840ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|2.8% {840ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
2.6% {780ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|1.4% {420ms} AJPPharoBufferDataStream>>flush
| 1.4% {420ms} AJPPharoSocketWriteStream>>flush
| 1.4% {420ms} AJPPharoSocketWriteStream>>sendBuffer
| 1.4% {420ms} Socket>>sendData:count:
2.3% {690ms} AJPPharoBufferDataStream>>hintNewTextPacket
2.3% {690ms} AJPPharoSocketReadStream>>readPacket
2.0% {600ms} Socket>>waitForData
1.8% {540ms} Socket>>waitForDataIfClosed:
1.7% {510ms} primitives
--------------------------------
Process: (70) AJP worker 5: Socket>>waitForDataIfClosed:
--------------------------------
8.5% {2550ms} AJPPharoSocketLoop(AJPLoop)>>loop
8.4% {2520ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
3.7% {1110ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|2.2% {660ms} AJPPharoBufferDataStream>>flush
| |2.1% {630ms} AJPPharoSocketWriteStream>>flush
| | 2.1% {630ms} AJPPharoSocketWriteStream>>sendBuffer
| | 2.1% {630ms} Socket>>sendData:count:
| | 1.4% {420ms} primitives
|1.1% {330ms} AJPResponseWriter>>sendBodyChunk:
3.2% {960ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|3.2% {960ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
| 1.3% {390ms} AJPPharoAdaptor(WAServerAdaptor)>>handle:
| |1.3% {390ms} AJPPharoAdaptor(WAServerAdaptor)>>handleRequest:
| | 1.3% {390ms} WADispatcher(WARequestHandler)>>handle:
| | 1.3% {390ms} WADispatcher>>handleFiltered:
| | 1.3% {390ms} WADispatcher>>handleFiltered:named:
| | 1.1% {330ms}
AJPFastRequestHandler(WARequestHandler)>>handle:
| | 1.0% {300ms} AJPFastRequestHandler>>handleFiltered:
| 1.2% {360ms} AJPPharoAdaptor(AJPAdaptor)>>responseFrom:
| 1.1% {330ms} AJPResponse class>>status:headers:body:
1.2% {360ms} AJPPharoBufferDataStream>>hintNewTextPacket
1.2% {360ms} AJPPharoSocketReadStream>>readPacket
--------------------------------
Process: (70) AJP worker 3: Socket>>waitForDataIfClosed:
--------------------------------
8.7% {2610ms} AJPPharoSocketLoop(AJPLoop)>>loop
8.6% {2580ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
3.9% {1170ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|2.1% {630ms} AJPPharoBufferDataStream>>flush
| |2.0% {600ms} AJPPharoSocketWriteStream>>flush
| | 2.0% {600ms} AJPPharoSocketWriteStream>>sendBuffer
| | 2.0% {600ms} Socket>>sendData:count:
| | 1.3% {390ms} primitives
|1.2% {360ms} AJPResponseWriter>>sendBodyChunk:
3.4% {1020ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|3.3% {990ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
| 1.2% {360ms} AJPPharoAdaptor(WAServerAdaptor)>>handle:
| |1.2% {360ms} AJPPharoAdaptor(WAServerAdaptor)>>handleRequest:
| | 1.2% {360ms} WADispatcher(WARequestHandler)>>handle:
| | 1.2% {360ms} WADispatcher>>handleFiltered:
| | 1.2% {360ms} WADispatcher>>handleFiltered:named:
| 1.2% {360ms} AJPPharoAdaptor(AJPAdaptor)>>responseFrom:
| 1.1% {330ms} AJPResponse class>>status:headers:body:
1.0% {300ms} AJPPharoBufferDataStream>>hintNewTextPacket
1.0% {300ms} AJPPharoSocketReadStream>>readPacket
--------------------------------
Process: (10) 321650688: ProcessorScheduler class>>idleProcess
--------------------------------
1.4% {420ms} ProcessorScheduler class>>idleProcess
--------------------------------
Process: (70) AJP worker 6: Socket>>waitForDataIfClosed:
--------------------------------
7.4% {2220ms} AJPPharoSocketLoop(AJPLoop)>>loop
7.4% {2220ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
3.1% {930ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|1.8% {540ms} AJPPharoBufferDataStream>>flush
| 1.8% {540ms} AJPPharoSocketWriteStream>>flush
| 1.8% {540ms} AJPPharoSocketWriteStream>>sendBuffer
| 1.8% {540ms} Socket>>sendData:count:
| 1.2% {360ms} primitives
2.7% {810ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|2.7% {810ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
1.3% {390ms} AJPPharoBufferDataStream>>hintNewTextPacket
1.3% {390ms} AJPPharoSocketReadStream>>readPacket
--------------------------------
Process: (70) AJP worker 7: Socket>>waitForDataIfClosed:
--------------------------------
7.6% {2280ms} AJPPharoSocketLoop(AJPLoop)>>loop
7.5% {2250ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
3.0% {900ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|1.6% {480ms} AJPPharoBufferDataStream>>flush
| |1.6% {480ms} AJPPharoSocketWriteStream>>flush
| | 1.6% {480ms} AJPPharoSocketWriteStream>>sendBuffer
| | 1.6% {480ms} Socket>>sendData:count:
| | 1.1% {330ms} primitives
|1.0% {300ms} AJPResponseWriter>>sendBodyChunk:
2.8% {840ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|2.8% {840ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
| 1.1% {330ms} AJPPharoAdaptor(AJPAdaptor)>>responseFrom:
| 1.0% {300ms} AJPPharoAdaptor(WAServerAdaptor)>>handle:
| 1.0% {300ms} AJPPharoAdaptor(WAServerAdaptor)>>handleRequest:
| 1.0% {300ms} WADispatcher(WARequestHandler)>>handle:
1.4% {420ms} AJPPharoBufferDataStream>>hintNewTextPacket
1.4% {420ms} AJPPharoSocketReadStream>>readPacket
1.2% {360ms} Socket>>waitForData
1.0% {300ms} Socket>>waitForDataIfClosed:
--------------------------------
Process: (70) AJP worker 11: Socket>>waitForDataIfClosed:
--------------------------------
9.5% {2850ms} AJPPharoSocketLoop(AJPLoop)>>loop
9.4% {2820ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
4.1% {1230ms} AJPPharoBufferDataStream>>hintNewTextPacket
|4.1% {1230ms} AJPPharoSocketReadStream>>readPacket
| 3.8% {1140ms} Socket>>waitForData
| 3.7% {1110ms} Socket>>waitForDataIfClosed:
| 3.6% {1080ms} primitives
2.6% {780ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|2.6% {780ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
2.5% {750ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
1.5% {450ms} AJPPharoBufferDataStream>>flush
1.5% {450ms} AJPPharoSocketWriteStream>>flush
1.5% {450ms} AJPPharoSocketWriteStream>>sendBuffer
1.5% {450ms} Socket>>sendData:count:
--------------------------------
Process: (70) AJP worker 4: Socket>>waitForDataIfClosed:
--------------------------------
8.4% {2520ms} AJPPharoSocketLoop(AJPLoop)>>loop
8.3% {2490ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
3.9% {1170ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|2.3% {690ms} AJPPharoBufferDataStream>>flush
| |2.2% {660ms} AJPPharoSocketWriteStream>>flush
| | 2.2% {660ms} AJPPharoSocketWriteStream>>sendBuffer
| | 2.2% {660ms} Socket>>sendData:count:
| | 1.5% {450ms} primitives
|1.1% {330ms} AJPResponseWriter>>sendBodyChunk:
3.1% {930ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|3.1% {930ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
| 1.2% {360ms} AJPPharoAdaptor(WAServerAdaptor)>>handle:
| |1.2% {360ms} AJPPharoAdaptor(WAServerAdaptor)>>handleRequest:
| | 1.1% {330ms} WADispatcher(WARequestHandler)>>handle:
| | 1.1% {330ms} WADispatcher>>handleFiltered:
| | 1.1% {330ms} WADispatcher>>handleFiltered:named:
| 1.1% {330ms} AJPPharoAdaptor(AJPAdaptor)>>responseFrom:
| 1.1% {330ms} AJPResponse class>>status:headers:body:
1.0% {300ms} AJPPharoBufferDataStream>>hintNewTextPacket
1.0% {300ms} AJPPharoSocketReadStream>>readPacket
--------------------------------
Process: (70) AJP worker 12: Socket>>waitForDataIfClosed:
--------------------------------
10.9% {3270ms} AJPPharoSocketLoop(AJPLoop)>>loop
10.8% {3240ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
5.8% {1740ms} AJPPharoBufferDataStream>>hintNewTextPacket
|5.8% {1740ms} AJPPharoSocketReadStream>>readPacket
| 5.5% {1650ms} Socket>>waitForData
| 5.4% {1620ms} Socket>>waitForDataIfClosed:
| 5.3% {1590ms} primitives
2.4% {720ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|1.4% {420ms} AJPPharoBufferDataStream>>flush
| 1.3% {390ms} AJPPharoSocketWriteStream>>flush
| 1.3% {390ms} AJPPharoSocketWriteStream>>sendBuffer
| 1.3% {390ms} Socket>>sendData:count:
2.4% {720ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
2.4% {720ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
--------------------------------
Process: (70) AJP worker 8: Socket>>waitForDataIfClosed:
--------------------------------
7.6% {2280ms} AJPPharoSocketLoop(AJPLoop)>>loop
7.5% {2250ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
3.0% {900ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|1.8% {540ms} AJPPharoBufferDataStream>>flush
| 1.8% {540ms} AJPPharoSocketWriteStream>>flush
| 1.8% {540ms} AJPPharoSocketWriteStream>>sendBuffer
| 1.8% {540ms} Socket>>sendData:count:
| 1.2% {360ms} primitives
2.6% {780ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
|2.6% {780ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
| 1.1% {330ms} AJPPharoAdaptor(AJPAdaptor)>>responseFrom:
1.7% {510ms} AJPPharoBufferDataStream>>hintNewTextPacket
1.7% {510ms} AJPPharoSocketReadStream>>readPacket
1.5% {450ms} Socket>>waitForData
1.3% {390ms} Socket>>waitForDataIfClosed:
1.2% {360ms} primitives
--------------------------------
Process: (70) AJP worker 2: Socket>>waitForDataIfClosed:
--------------------------------
9.2% {2760ms} AJPPharoSocketLoop(AJPLoop)>>loop
9.1% {2730ms} AJPPharoSocketLoop(AJPLoop)>>loopPossiblyThrowingExceptions
4.1% {1230ms} AJPPharoSocketLoop(AJPLoop)>>writeResponse:
|2.3% {690ms} AJPPharoBufferDataStream>>flush
| |2.3% {690ms} AJPPharoSocketWriteStream>>flush
| | 2.3% {690ms} AJPPharoSocketWriteStream>>sendBuffer
| | 2.3% {690ms} Socket>>sendData:count:
| | 1.6% {480ms} primitives
|1.3% {390ms} AJPResponseWriter>>sendBodyChunk:
3.7% {1110ms} AJPPharoSocketLoop(AJPAdapterLoop)>>forwardRequest:
3.7% {1110ms} AJPPharoAdaptor(WAServerAdaptor)>>process:
1.6% {480ms} AJPPharoAdaptor(AJPAdaptor)>>responseFrom:
|1.5% {450ms} AJPResponse class>>status:headers:body:
1.0% {300ms} AJPPharoAdaptor(WAServerAdaptor)>>handle:
1.0% {300ms} AJPPharoAdaptor(WAServerAdaptor)>>handleRequest:
1.0% {300ms} WADispatcher(WARequestHandler)>>handle:
**Leaves**
17.8% {5340ms} Socket>>sendData:count:
15.5% {4650ms} Socket>>waitForDataIfClosed:
6.9% {2070ms} True>>&
6.7% {2010ms} AJPPharoBufferDataStream>>writeByte:
6.2% {1860ms} WARequestContext>>respond
5.3% {1590ms} AJPResponse class>>status:headers:body:
2.4% {720ms} ReadWriteStream class(PositionableStream class)>>on:
2.1% {630ms} Socket>>receiveAvailableDataInto:startingAt:
1.9% {570ms} Socket>>waitForData
1.4% {420ms} ProcessorScheduler class>>idleProcess
1.3% {390ms} Socket>>isConnected
1.2% {360ms} ByteString(String)>>=
**Memory**
old +916,116 bytes
young -38,284 bytes
used +877,832 bytes
free -877,832 bytes
**GCs**
full 0 totalling 0ms (0.0% uptime)
incr 1838 totalling 2,237ms (7.0% uptime), avg 1.0ms
tenures 7 (avg 262 GCs/tenure)
root table 0 overflows