[Zope-CMF] CMF object? w/ ab results was Plone Speed

alan runyan alan runyan" <runyaga@runyaga.com
Wed, 15 May 2002 11:15:36 -0500


> > *I* believe the "smoking gun" lies elsewhere (e.g., inside the actions
tool).

maybe.

in the bare bones document_view I make a call to <span
tal:replace="here/portal_actions/listFilteredActionsFor" /> I get:

Concurrency Level:      2
Time taken for tests:   9.984 seconds
Complete requests:      100
Failed requests:        0
Broken pipe errors:     0
Total transferred:      206400 bytes
HTML transferred:       183400 bytes
Requests per second:    10.02 [#/sec] (mean)
Time per request:       199.68 [ms] (mean)
Time per request:       99.84 [ms] (mean, across all concurrent requests)
Transfer rate:          20.67 [Kbytes/sec] received

Connnection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0     0    0.4      0     5
Processing:    98   198   30.0    198   288
Waiting:       97   197   30.0    198   288
Total:         98   198   30.1    198   288

> Cool, I defer to your greater experience. I do know that plone makes heavy
use of the
> actions tool too, so I can believe this...

we are not an exception of using the actions tool. Like CMFDefault we called
tal:define="global actions here/portal_actions/listFilteredActionsFor"
and all calls use the actions global variable from there on out.  I dont
think this is a problem.  CMFDefault is less than 100% faster than CMFPlone
as
previously shown.  I've seen breadcrumbing code usually slow things down
*significantly*, but using portal_url I dont see how we could get much
faster.

hmmm.  maybe it *does* lie in PageTemplates.  I change my document_view to a
DTML Method that only does <dtml-var CookedBody>

these results I am satisfied with: ~20 req/sec.  for doing nothing but
showing the CookedBody.
CMFPlone - custom/document_view is <dtml-var CookedBody>
---------------------------------------------------------------
Concurrency Level:      2
Time taken for tests:   5.247 seconds
Complete requests:      100
Failed requests:        0
Broken pipe errors:     0
Total transferred:      128674 bytes
HTML transferred:       105444 bytes
Requests per second:    19.06 [#/sec] (mean)
Time per request:       104.94 [ms] (mean)
Time per request:       52.47 [ms] (mean, across all concurrent requests)
Transfer rate:          24.52 [Kbytes/sec] received

Connnection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0     0    0.0      0     0
Processing:    50   104   43.0     96   293
Waiting:       49   104   42.9     96   292
Total:         50   104   43.0     96   293

hmmmmmmm.
here is another idea. created a DTML Method that does <dtml-var title_or_id>
put it in root of ZOPE, ab. gives me ~50 req/sec.  (yummy).
call the method 'test' and put it in root of CMF site.  and get.

CMFPlone - not even using the skinning machinery in anyway (or am I?)
create a 'test' DTML Method in the CMF Site root which ony has: <dtml-var
title_or_id>
-----------
Concurrency Level:      2
Time taken for tests:   4.878 seconds
Complete requests:      100
Failed requests:        0
Broken pipe errors:     0
Total transferred:      23400 bytes
HTML transferred:       600 bytes
Requests per second:    20.50 [#/sec] (mean)
Time per request:       97.56 [ms] (mean)
Time per request:       48.78 [ms] (mean, across all concurrent requests)
Transfer rate:          4.80 [Kbytes/sec] received

Connnection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0     0    0.0      0     0
Processing:    46    97   40.7     88   276
Waiting:       46    96   40.8     88   276
Total:         46    97   40.7     88   276

hmmmm.  this is interesting.  why more than 1/2 the sleep lost just to show
the title_or_id?

~runyaga