[squeak-dev] Re: How to profile a server image?

Herbert König herbertkoenig at gmx.net
Sat Feb 28 20:23:53 UTC 2009


Hello Andreas,

AR> [Apologies for cross-posting but I figured some of the more interested
AR> audience may be on the Seaside list. What follows below is a summary of
AR> my experiences with server profiling over the last couple of years which
AR> I've done a goodly bit of]

big thanks! Having spent an hour or so with trying and finding my
first clues in the process browser in Socket>>waitforDataIfClosed:
I decided not to ask on the Aida list but here.

But I'll post a link to your reply on the Aida list too.

With your fix and

MessageTally spyAt: Processor timingPriority-1
             on:[(Delay forSeconds: 30) wait]

I'm still confused by the result.

I'm using Aida and I open two web apps in two tabs of the web browser.
Then I just switch tabs alternating and refresh the browser.

So I'd expect both WebApps to show up in the tally but I only see the
app of which ever tab in the web browser I refresh first. The
remainder of the tally seems plausible to me except where noted in the
tally.

The server is a slow machine the client with the browser is fast and
connects via Lan. A refresh takes 5 seconds. Server uses lots of CPU
during this.

Do you think it's time to go to the Aida list, or is this still a
tally problem I have?

Squeak 3.8.2 with Win 3.10.10 VM.



Cheers,

Herbert                            mailto:herbertkoenig at gmx.net
-------------- next part --------------
 - 29504 tallies, 30000 msec.

**Tree**
???????????????????????????? Why does this eat so much?
61.2% {18360ms} ProcessorScheduler class>>startUp
  |61.2% {18360ms} ProcessorScheduler class>>idleProcess
30.1% {9030ms} HTTPConnection>>interact
  |30.1% {9030ms} HTTPConnection>>getAndDispatchMessages
  |  27.1% {8130ms} HTTPConnection>>produceResponseFor:
  |    |24.9% {7470ms} HTTPServer>>answerTo:
  |    |  |24.9% {7470ms} URIResolution class>>resolveRequest:startingAt:
  |    |  |  24.9% {7470ms} URIResolution>>visitResource:
  |    |  |    24.9% {7470ms} ServerRootComposite>>helpResolve:
  |    |  |      24.9% {7470ms} URIResolution>>resolveServerRoot:
  |    |  |        24.9% {7470ms} URIResolution>>resolveTransparentComposite:
  |    |  |          24.9% {7470ms} URIResolution>>visitChildrenOf:advancing:
  |    |  |            24.8% {7440ms} URIResolution>>visitResource:
  |    |  |              24.7% {7410ms} AIDASite>>helpResolve:
  |    |  |                24.7% {7410ms} AIDASite>>answerTo:
  |    |  |                  18.0% {5400ms} AIDASite>>answer:to:on:
  |    |  |                    |18.0% {5400ms} AIDASite>>answer:toGetOrPost:on:
  ############### or ADemoAddressBookApp if I start there.
  |    |  |                    |  10.4% {3120ms} ADemoAddressApp(WebPage)>>printHTMLPageOn:forSession:
  |    |  |                    |    |10.3% {3090ms} WebForm>>printHTMLPageOn:forSession:
  |    |  |                    |    |  10.3% {3090ms} WebForm(WebElement)>>printHTMLPageOn:forSession:
  |    |  |                    |    |    10.3% {3090ms} WebElement>>printHTMLPageOn:forSession:
  |    |  |                    |    |      10.2% {3060ms} WebElement>>printHTMLPageOn:forSession:
  |    |  |                    |    |        10.1% {3030ms} WebElement>>printHTMLPageOn:forSession:
  |    |  |                    |    |          4.4% {1320ms} WebGrid>>printHTMLPageOn:forSession:
  |    |  |                    |    |            |3.2% {960ms} WebTable>>printHTMLPageOn:forSession:
  |    |  |                    |    |            |  3.2% {960ms} WebTable(WebElement)>>printHTMLPageOn:forSession:
  |    |  |                    |    |            |    3.2% {960ms} WebTableRow>>printHTMLPageOn:forSession:
  |    |  |                    |    |            |      2.9% {870ms} WebTableRow(WebElement)>>printHTMLPageOn:forSession:
  |    |  |                    |    |            |        2.7% {810ms} WebTableCell>>printHTMLPageOn:forSession:
  |    |  |                    |    |          4.3% {1290ms} WebElement>>printHTMLPageOn:forSession:
  |    |  |                    |    |            3.8% {1140ms} WebList>>printHTMLPageOn:forSession:
  |    |  |                    |    |              3.7% {1110ms} WebList(WebElement)>>printHTMLPageOn:forSession:
  |    |  |                    |    |                3.7% {1110ms} WebListItem>>printHTMLPageOn:forSession:
  |    |  |                    |    |                  3.1% {930ms} WebListItem(WebElement)>>printHTMLPageOn:forSession:
  |    |  |                    |    |                    3.1% {930ms} WebLink>>printHTMLPageOn:forSession:
  |    |  |                    |  5.7% {1710ms} WebMethodResource>>printHTMLPageOn:forSession:
  |    |  |                    |    3.1% {930ms} WebStyle>>screenStyleSheet
  |    |  |                    |      3.0% {900ms} WebStyle>>allCssScreenMethods
  |    |  |                  3.7% {1110ms} AIDASite>>objectTo:forSession:
  |    |2.2% {660ms} HTTPConnection>>nextPutResponse:toRequest:
  |    |  2.1% {630ms} HTTPResponse>>writeTo:
  |  2.9% {870ms} HTTPConnection>>readRequestFor:
  |    2.5% {750ms} HTTPRequest class>>readFrom:
  |      2.3% {690ms} HTTPRequest class>>newFor:readFrom:
  |        2.2% {660ms} HTTPGet(HTTPRequest)>>for:readFrom:
  |          2.1% {630ms} HTTPHeaders class>>readFrom:
  |            2.1% {630ms} HTTPHeaders>>readFrom:
5.5% {1650ms} EventSensor>>installEventTickler
  |5.5% {1650ms} EventSensor>>eventTickler
  |  5.5% {1650ms} Delay>>wait
  |    5.3% {1590ms} primitives
2.9% {870ms} HTTPServer>>start
  2.9% {870ms} HTTPServer>>acceptConnection
    2.9% {870ms} SwazooSocket>>accept
      2.9% {870ms} SpSocket>>acceptRetryingIfTransientErrors
        2.9% {870ms} SpSocket>>accept
          2.9% {870ms} Socket>>waitForAcceptFor:ifTimedOut:
            2.8% {840ms} Socket>>waitForConnectionFor:ifTimedOut:
              2.8% {840ms} Semaphore>>waitTimeoutMSecs:

**Leaves**
61.2% {18360ms} ProcessorScheduler class>>idleProcess
6.8% {2040ms} ByteSymbol class(String class)>>stringHash:initialHash:
5.3% {1590ms} Delay>>wait
3.0% {900ms} Semaphore>>critical:

**Memory**
	old			-973,692 bytes
	young		-12,348 bytes
	used		-986,040 bytes
	free		+1,551,680 bytes

**GCs**
	full			1 totalling 1,498ms (5.0% uptime), avg 1498.0ms
	incr		720 totalling 1,151ms (4.0% uptime), avg 2.0ms
	tenures		18 (avg 40 GCs/tenure)
	root table	0 overflows


More information about the Squeak-dev mailing list