:( using web interface is inconvenient. Ignore last mail, resending:
-------------
Wanted to attach test data as well but automatically clicked 'send' and
oops... it gone.
Here are couple of test runs:
1.63.5              44.572ms
1.63.5              44.898ms
detected noise 0.326ms (136:1 signal-to-noise).
full 'ab' output attached

On Tue, Jun 9, 2009 at 4:25 PM, Alexey Nezhdanov <snak...@gmail.com> wrote:

> Wanted to attach test data as well but automatically clicked 'send' and
> oops... it gone.
> Here are couple of test runs:
> 1.63.544.572
>
> On Tue, Jun 9, 2009 at 4:14 PM, Alexey Nezhdanov <snak...@gmail.com>wrote:
>
>> Finally, I started migration (before I was just slapping sql.py, checked
>> out of the trunk over my ancient 1.61.4 install).
>> Migration is not easy, I've been bending source for my needs so now I have
>> to port all this to 1.63.5. Massimo, do you have any objections to this
>> patch? I proposed it some time ago, but you were too busy at the time.
>> The purpose is - if we want custom forms instead of SQLFORM then we have
>> to write our own view.html. But on the other hand - that is double work in
>> the regard that we need to write down <input type='xxx' length='yyy'
>> id='zzz' name='nnn' /> each time while we already generated all this in
>> controller.
>> I'd really like to be able to write in my controller:
>> <table><tr>
>> <td>{{=form.custom.label.my_input}}</td>
>> <td>{{=form.custom.widget.my_input}}</td>
>> </tr></table>
>> See attached patch.
>>
>>
>> On Tue, Jun 9, 2009 at 3:14 PM, Alexey Nezhdanov <snak...@gmail.com>wrote:
>>
>>> Forgot about patches. Here they are.
>>> 'optimised inits v.2'
>>> 'lazy tables' (this one is modified to be applicable to trunk version of
>>> sql.py)
>>>
>>>
>>> On Tue, Jun 9, 2009 at 3:10 PM, Alexey Nezhdanov <snak...@gmail.com>wrote:
>>>
>>>> Results of second set of test runs:
>>>>
>>>> r875            45.523ms
>>>> r882            20.614ms
>>>> inits v.1       18.464ms
>>>> inits v.2       18.677ms
>>>> inits1+lazyT    15.377ms
>>>> inits2+lazyT    15.280ms
>>>>
>>>> Observed noise was 0.502ms for slowest execution (90:1
>>>> signal-to-noise) and 0.889ms for fastest execution (16:1
>>>> signal-to-noise).
>>>> Given than, I think it is safe enough to say that
>>>> "this particular application on this particular hardware/OS
>>>> combination was sped up 2.88...3.31 times".
>>>>
>>>> As in last case - for completeness I'm attaching full console output
>>>>
>>>> I think I know what I'll do. Currently I do not want to release my
>>>> project as any kind of open-source. But I can
>>>> 1) Strip out any code I do not use in this perfomance testing
>>>> 2) rename all sensitive fieldnames/variables to something like field1,
>>>> field2, var3, var4.
>>>> Release resulting package. It would be useless as it is, but it will
>>>> have same perfomance parameters so could be used for testing.
>>>>
>>>> On Tue, Jun 9, 2009 at 1:35 PM, Alexey Nezhdanov<snak...@gmail.com>
>>>> wrote:
>>>> > Wrote 'optimised inits v2' patch. Tested everything.
>>>> >
>>>> > Once again I changed my testing pattern a bit.
>>>> >
>>>> > 1) I dumped my own timing tool in favor of much more standard
>>>> > 'ab' (apache benchmark).
>>>> >
>>>> > 2) I decidedly will publish all these results in two main.
>>>> > I just finished first round of testing. Here are results (reported
>>>> > values are average request time in milliseconds. If anyone interested
>>>> > - I'm attaching a full output from my console).
>>>> > I will do all that testing again and publish same results again so
>>>> > that the amount of noise in all this will be public and clearly
>>>> > visible (here I'm fighting with my own temptation to rerun the tests
>>>> > if timings seem to be 'too away' to me).
>>>> >
>>>> > First four lines share my app's db.py. Last two require a modified
>>>> > db.py, but modification is cosmetical - each define_table is put into
>>>> > separate function and I do db.tablename=create_table_tablename after
>>>> > each function. Model init time was not measured.
>>>> >
>>>> > No more words. Dry figures only. Each line represents result of 10k
>>>> requests.
>>>> > r875            46.025ms
>>>> > r882            21.048ms
>>>> > inits v.1       18.918ms
>>>> > inits v.2       18.122ms
>>>> > inits1+lazyT    16.032ms
>>>> > inits2+lazyT    14.391ms
>>>> >
>>>> > P.S. I'm surprised about last line... Noise?
>>>> >
>>>> > On Tue, Jun 9, 2009 at 11:12 AM, Alexey Nezhdanov<snak...@gmail.com>
>>>> wrote:
>>>> >> new testing:
>>>> >>
>>>> >> ---- SERVER KERNEL ----
>>>> >> --prints
>>>> >> r875    0.04898
>>>> >> r822ini 0.03070 1.60x
>>>> >> --silent
>>>> >> r875    0.04914
>>>> >> r822ini 0.03049 1.61x
>>>> >>
>>>> >> So I get much more consistent results on this hardware.
>>>> >> While this is obviously not the best perfomance (my weaker box,
>>>> >> with less RAM, troubled with video output 1280x1024,
>>>> >> software 90deg rotation - performs BETTER), that does not matter.
>>>> >> What does - is that I can now be sure that these results are
>>>> >> noise-free so I can safely compare timings from various patches.
>>>> >> Proceeding with writing 'inits v2'.
>>>> >>
>>>> >>
>>>> >> On Tue, Jun 9, 2009 at 10:43 AM, Alexey Nezhdanov<snak...@gmail.com>
>>>> wrote:
>>>> >>> Ok. Now the confusion is resolved.
>>>> >>> 1) Speed improvements of 70% and up that I reported yesterday are
>>>> >>> really exist. I just reproduced a 3.47 times model speedup and 2.15
>>>> >>> overall speedup for my app (r875 vs r822+inits).
>>>> >>> BUT this app is atypical. I have added some time measuring code
>>>> there
>>>> >>> so it prints out two lines per each model init. So when I am testing
>>>> >>> perfomance - screen very quickly scrolls up
>>>> >>>
>>>> >>> 2) Simply commenting out two print statements gives me only 1.67
>>>> >>> overall speedup given equal other conditions. I think that processor
>>>> >>> receive additional interrupts from videocard that in turn results in
>>>> >>> more often checks of tasks queue.
>>>> >>>
>>>> >>> 3) I declare all my previous testing results spoiled by noise
>>>> >>> generated by print statement and inappropriate kernel scheduler
>>>> >>> setting.
>>>> >>> I've set up yet another test box with these parameters:
>>>> >>>
>>>> >>> Intel Core2 Duo 2.66GHz, 2G RAM, Ubuntu 9.04, 'server' flavour
>>>> kernel
>>>> >>> 2.6.28-11.42. Initially I considered to install a 'realtime' kernel,
>>>> >>> but it appeared to be unstable on that hardware (and afterall - it's
>>>> >>> for sound/video processing and 'server' type is more likely to be
>>>> >>> installed on servers).
>>>> >>>
>>>> >>> Will report new testing results (and finally I hope to write
>>>> >>> 'optimised inits ver.2' patch) later today.
>>>> >>>
>>>> >>> On Tue, Jun 9, 2009 at 5:14 AM, mdipierro<mdipie...@cs.depaul.edu>
>>>> wrote:
>>>> >>>>
>>>> >>>> Please try launchpad 893. I think it should be faster on GAE.
>>>> >>>> We can do better with lazy tables but at least the validators and
>>>> >>>> calls to getitem are eliminated.
>>>> >>>>
>>>> >>>> Massimo
>>>> >>>>
>>>> >>>> On Jun 8, 1:05 pm, Markus Gritsch <m.grit...@gmail.com> wrote:
>>>> >>>>> On Mon, Jun 8, 2009 at 5:54 PM, mdipierro<mdipie...@cs.depaul.edu>
>>>> wrote:
>>>> >>>>>
>>>> >>>>> > the web2py in trunk can execute models 2.5x faster than the
>>>> current
>>>> >>>>> > stable/production version (requires migrate=False and bytecode
>>>> >>>>> > compiled models).
>>>> >>>>>
>>>> >>>>> Will this speedup also has an effect on GAE?  IMO one uploads no
>>>> .pyc files?
>>>> >>>>>
>>>> >>>>> Markus
>>>> >>>> >>>> >>>>
>>>> >>>>
>>>> >>>
>>>> >>
>>>> >
>>>>
>>>
>>>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Attachment: ab-runs3.gz
Description: GNU Zip compressed data

Reply via email to