Crap. Also should mention this is an Mac Mini, Intel Core 2 Duo 2.26 GHz and 4GiB of RAM. I don't remember what speed this harddrive is off the top of my head.
Paul And now time for bed. On Fri, Jul 17, 2009 at 3:38 AM, Paul Davis<[email protected]> wrote: > 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<[email protected]> > 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 >> >
