couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <paul.joseph.da...@gmail.com>
Subject Re: There is no spoon.
Date Fri, 17 Jul 2009 07:38:40 GMT
I should've mentioned that the code is online at [1].

Don't look too hard at the code. Its pretty shitty as I was just
trying to tear through to be able to measure it.

Paul

[1] http://github.com/davisp/couchdb/commit/f6019cceb068dc4f3df3a48c253ad460f2619332

On Fri, Jul 17, 2009 at 3:35 AM, Paul Davis<paul.joseph.davis@gmail.com> wrote:
> Hiya,
>
> I had me an idea the other day I got around to trying. We've been
> going over how to make JSON parsing ├╝ber fast between Erlang and the
> View servers. Instead of making JSON parsing faster I decided to just
> drop it completely. I wrote enough code in couch_js.c tonight to get
> the basics of converting the ErlJSON -> Spidermonkey objects and back.
> Quite a few of the pertinent tests are passing. There was an issue
> with object iteration that prevent view collation from working
> correctly. And the show/list tests are broken because I didn't add XML
> serialization. Either way it was enough for me to collect some numbers
> with the same script I used on my blog a couple weeks ago.
>
> The huge ass caveat on the tail end for Patch at 10K 8KiB docs is that
> this is best case scenario. I was just beefing up the document size by
> adding a large string on them. In the conversion process this ends up
> being a fairly quick pass using EncodeString and DecodeString.
>
> Another thing to notice is that once compiled with +native the numbers
> for small docs don't change too drastically.
>
> And here are numbers:
>
> Straight up trunk: 10K tiny docs
> --------------------------------
>
> Inserting: 0.955830
> Map only: 4.296859
> With reduce: 4.014233
> With erlang reduce: 3.199325
>
> Inserting: 0.970745
> Map only: 3.961110
> With reduce: 4.550082
> With erlang reduce: 3.493316
>
> Inserting: 0.992892
> Map only: 4.747793
> With reduce: 4.552446
> With erlang reduce: 3.681820
>
>
> Straight up trunk: 1OK 4KiB Documents
> -------------------------------------
>
> Inserting: 5.895689
> Map only: 11.716073
> With reduce: 12.127348
> With erlang reduce: 11.069352
>
> Inserting: 6.221656
> Map only: 12.074525
> With reduce: 11.500115
> With erlang reduce: 10.680610
>
> Inserting: 5.974915
> Map only: 11.240969
> With reduce: 11.620035
> With erlang reduce: 10.458795
>
>
> Straight up trunk: 10K 8KiB Documents
> -------------------------------------
>
> Inserting: 9.533340
> Map only: 16.273873
> With reduce: 16.647050
> With erlang reduce: 14.529038
>
> Inserting: 9.828476
> Map only: 15.772620
> With reduce: 15.707862
> With erlang reduce: 14.577865
>
> Inserting: 9.598872
> Map only: 15.251671
> With reduce: 15.930784
> With erlang reduce: 14.445052
>
> Trunk +native 10K Tiny docs
> ---------------------------
>
> Inserting: 0.953937
> Map only: 2.524961
> With reduce: 2.411511
> With erlang reduce: 1.541173
>
> Inserting: 0.963175
> Map only: 2.486752
> With reduce: 2.354808
> With erlang reduce: 1.534005
>
> Inserting: 0.949138
> Map only: 2.429267
> With reduce: 2.385016
> With erlang reduce: 1.525428
>
>
> Trunk +native 10K 4KiB docs
> ---------------------------
>
> Inserting: 3.952355
> Map only: 10.106112
> With reduce: 9.687787
> With erlang reduce: 8.781025
>
> Inserting: 3.968877
> Map only: 9.552732
> With reduce: 9.626942
> With erlang reduce: 8.537417
>
> Inserting: 4.359648
> Map only: 9.472417
> With reduce: 9.719609
> With erlang reduce: 8.771725
>
>
> Trunk +native 10K 8KiB docs
> ---------------------------
>
> Inserting: 7.046171
> Map only: 12.111946
> With reduce: 11.566371
> With erlang reduce: 10.571792
>
> Inserting: 7.183114
> Map only: 12.177807
> With reduce: 11.619149
> With erlang reduce: 10.461091
>
> Inserting: 6.867450
> Map only: 11.358312
> With reduce: 11.420452
> With erlang reduce: 10.452706
>
>
> Patched 10K Tiny docs
> ---------------------
>
> Inserting: 0.954482
> Map only: 2.339038
> With reduce: 2.311544
> With erlang reduce: 1.513258
>
> Inserting: 0.942735
> Map only: 2.543295
> With reduce: 2.522470
> With erlang reduce: 1.514119
>
> Inserting: 0.961381
> Map only: 2.372250
> With reduce: 2.336503
> With erlang reduce: 1.558217
>
>
> Patched 10K 4KiB docs
> ---------------------
>
> Inserting: 5.933259
> Map only: 5.484083
> With reduce: 5.693180
> With erlang reduce: 4.502828
>
> Inserting: 5.980323
> Map only: 5.251158
> With reduce: 5.290837
> With erlang reduce: 4.530348
>
> Inserting: 6.067070
> Map only: 5.501945
> With reduce: 5.314363
> With erlang reduce: 4.409588
>
> Patched 10K 8KiB docs
> ---------------------
>
> Inserting: 7.096909
> Map only: 5.293864
> With reduce: 5.254415
> With erlang reduce: 4.437001
>
> Inserting: 6.847729
> Map only: 5.191201
> With reduce: 5.161696
> With erlang reduce: 4.256955
>
> Inserting: 7.168672
> Map only: 5.294789
> With reduce: 5.195616
> With erlang reduce: 4.323075
>
> Patched +native 10K Tiny docs
> -----------------------------
>
> Inserting: 0.945826
> Map only: 2.451693
> With reduce: 2.383522
> With erlang reduce: 1.578508
>
> Inserting: 0.972655
> Map only: 2.504448
> With reduce: 2.343594
> With erlang reduce: 1.512512
>
> Inserting: 0.952105
> Map only: 2.391866
> With reduce: 2.329651
> With erlang reduce: 1.505249
>
>
> Patched +native 10K 4KiB docs
> -----------------------------
>
> Inserting: 4.060498
> Map only: 5.937243
> With reduce: 5.611110
> With erlang reduce: 4.813867
>
> Inserting: 3.979680
> Map only: 5.720481
> With reduce: 5.602648
> With erlang reduce: 4.734298
>
> Inserting: 3.892947
> Map only: 6.140995
> With reduce: 5.565891
> With erlang reduce: 4.736162
>
>
> Patched +native 10K 8KiB docs
> -----------------------------
>
> Inserting: 7.040456
> Map only: 5.302867
> With reduce: 5.269647
> With erlang reduce: 4.433941
>
> Inserting: 6.808467
> Map only: 5.371900
> With reduce: 5.203042
> With erlang reduce: 4.347747
>
> Inserting: 6.977694
> Map only: 5.393854
> With reduce: 5.368036
> With erlang reduce: 4.368916
>

Mime
View raw message