chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: [Chicken-users] performance issue in xml-rpc


From: Daishi Kato
Subject: Re: Re: [Chicken-users] performance issue in xml-rpc
Date: Mon, 11 Dec 2006 11:09:27 +0900

Alright, I was able to enable profiling for eggs by editing *.setup.
Running 10000 requests gave me the following result:

procedure                                  calls   seconds   average  percent
-------------------------------------------------------------------------------
dispatch-request                           10001   112.828     0.011 100.0000
read-request                               10001    55.634     0.005  49.3082
handle-request                             10000    40.381     0.004  35.7895
get/post-handler                           10000    39.284     0.003  34.8181
SSAX:XML->SXML                             10000    26.256     0.002  23.2706
scan-for-significant-prolog-token-1        20000    26.175     0.001  23.1988
element-parser                             10000    23.971     0.002  21.2454
read-line-perhaps                          10001    19.013     0.001  16.8511
SSAX:read-char-data                       260000    13.856     0.329  12.2805
SSAX:read-markup-token                    280000    11.773     0.205  10.4352
SSAX:read-QName                           270000     7.265     0.690   6.4389
SSAX:read-NCName                          280000     6.615     0.362   5.8628
http:read-request-attributes               10000     6.547     0.000   5.8025
SSAX:complete-start-tag                   140000     5.562     0.972   4.9295
next-token-of                             280000     4.684     0.672   4.1514
g61                                        10000     4.521     0.000   4.0069
write-result-response                      10000     3.448     0.000   3.0559
write-response                             10000     2.830     0.000   2.5082
SSAX:skip-S                               440000     2.269     0.156   2.0110
SSAX:read-attributes                      140000     1.886     0.347   1.6715
assert-curr-char                          560000     1.341     0.394   1.1885
SSAX:scan-Misc                             20000     1.314     0.57e   1.1645
skip-while                                490000     1.262     0.575   1.1185
SSAX:assert-token                         130000     1.210     0.307   1.0724
http:write-response-header                 10000     1.188     0.000   1.0529
next-token                                 50000     1.174     0.348   1.0405
def-code254                                10000     1.153     0.000   1.0219
def-msg255                                 10000     1.109     0.000   0.9829
def-alist256                               10000     1.071     0.000   0.9492
def-port257                                10000     1.034     0.000   0.9173
xml-token-kind                            690000     1.026     0.486   0.9093

On 12/8/06, Graham Fawcett <address@hidden> wrote:
On 12/7/06, Daishi Kato <address@hidden> wrote:
> > Does smoke come out of the box when the number of requests increase?
> > If so, how much? (Hey, you never know unless you ask.)
>
> Oh, I don't hope it smoke,s by now.

Too bad. I could have helped you with that one! :-)

> Well, I can try writing the client side in scheme,
> so that you can reproduce the problem. (But you need to wait until
> next Monday, since I'll be off for a while.)
> Currently, the client is written in Java, and I haven't read the code yet.
>
> Thanks anyway for asking this. Do you happen to know how to run some
> kind of profiling on xml-rpc and http eggs?

Not too familiar. :-( Chicken has profiler support; also, the fact
that you can compile to C suggests that C-profiling tools would also
work correctly. But I think I would start with 'top' if you are
running on a Unix box; just watch the processes, their CPU and memory
usage, and hope to discover a clue. Separating the client and server
onto separate machines might also be useful, though it may not uncover
the problem.

In terms of load testing, I'm pretty primitive when it comes to this
kind of thing. I start with apachebench (ab), first from the
localhost, then from a nearby peer. Later if I really need to test
heavy loads, I have access to a lab of workstations; I script them to
attack the server, and watch what happens. It is not like real-world
traffic, though -- the latency is too low and the bandwidth too high
-- you would need to introduce a bottleneck into your network to be
more realistic. But I'm digressing.

Graham





reply via email to

[Prev in Thread] Current Thread [Next in Thread]