Граф коммитов

17 Коммитов

Автор SHA1 Сообщение Дата
Matt Burke c4a1f2ca03 mochilo v1 == bert v3, mochilo v2 == bert v4 2017-05-30 12:32:32 -04:00
Matt Burke b5e83ef0d8 Serialize symbol, time, regexp in the benchmark, too
user     system      total        real
BERT v1 tiny                     0.010000   0.000000   0.010000 (  0.013280)
BERT v1 small                    0.110000   0.000000   0.110000 (  0.116110)
BERT v1 large                    0.630000   0.010000   0.640000 (  0.646742)
BERT v1 complex                  2.710000   0.000000   2.710000 (  2.738346)
BERT v1 long array               5.360000   0.000000   5.360000 (  5.391206)
BERT v2 tiny                     0.020000   0.000000   0.020000 (  0.018202)
BERT v2 small                    0.140000   0.000000   0.140000 (  0.133662)
BERT v2 large                    0.640000   0.010000   0.650000 (  0.660656)
BERT v2 complex                  2.520000   0.010000   2.530000 (  2.534638)
BERT v2 long array               5.460000   0.010000   5.470000 (  5.520119)
BERT v3 tiny                     0.010000   0.000000   0.010000 (  0.010693)
BERT v3 small                    0.010000   0.000000   0.010000 (  0.011390)
BERT v3 large                    0.220000   0.030000   0.250000 (  0.246068)
BERT v3 complex                  0.060000   0.000000   0.060000 (  0.055431)
BERT v3 long array               0.520000   0.000000   0.520000 (  0.522735)
JSON tiny                        0.000000   0.000000   0.000000 (  0.005991)
JSON small                       0.020000   0.000000   0.020000 (  0.010092)
JSON large                       2.200000   0.020000   2.220000 (  2.252311)
JSON complex                     0.160000   0.000000   0.160000 (  0.159742)
JSON long array                  0.450000   0.010000   0.460000 (  0.454021)
YAJL tiny                        0.010000   0.000000   0.010000 (  0.006357)
YAJL small                       0.020000   0.000000   0.020000 (  0.023327)
YAJL large                       0.960000   0.020000   0.980000 (  1.002778)
YAJL complex                     0.280000   0.030000   0.310000 (  0.317845)
YAJL long array                  0.750000   0.000000   0.750000 (  0.747592)
Ruby tiny                        0.000000   0.000000   0.000000 (  0.003547)
Ruby small                       0.010000   0.000000   0.010000 (  0.007403)
Ruby large                       0.010000   0.000000   0.010000 (  0.012739)
Ruby complex                     0.020000   0.000000   0.020000 (  0.015415)
Ruby long array                  0.030000   0.000000   0.030000 (  0.036519)
2017-05-26 14:48:03 -04:00
Matt Burke 5c272f0635 v4 (mochilo) -> v3 2017-04-27 14:30:54 -04:00
Matt Burke 40e478c76b Make v4, using mochilo
mochilo is like msgpack, except that it deals with encodings in a
sane(r?) way. mochilo doesn't have a custom type registry, so I've added
one in the "custom-type-registry" branch, and I'm using that here.

This ended up being faster than the msgpack implementation, because
encoding doesn't have to pop up to ruby to deal with strings.

                                     user     system      total        real
BERT v2 tiny                     0.010000   0.000000   0.010000 (  0.015289)
BERT v2 small                    0.130000   0.000000   0.130000 (  0.126682)
BERT v2 large                    0.580000   0.000000   0.580000 (  0.592555)
BERT v2 complex                  2.880000   0.010000   2.890000 (  2.903082)
BERT v2 long array               4.200000   0.000000   4.200000 (  4.262165)

BERT v3 tiny                     0.020000   0.000000   0.020000 (  0.020252)
BERT v3 small                    0.020000   0.000000   0.020000 (  0.024444)
BERT v3 large                    0.700000   0.010000   0.710000 (  0.703152)
BERT v3 complex                  0.090000   0.000000   0.090000 (  0.100372)
BERT v3 long array               1.810000   0.010000   1.820000 (  1.827934)

BERT v4 tiny                     0.010000   0.000000   0.010000 (  0.013301)
BERT v4 small                    0.010000   0.000000   0.010000 (  0.012317)
BERT v4 large                    0.230000   0.060000   0.290000 (  0.292852)
BERT v4 complex                  0.070000   0.000000   0.070000 (  0.064578)
BERT v4 long array               0.110000   0.000000   0.110000 (  0.110842)

Msgpack tiny                     0.000000   0.000000   0.000000 (  0.001644)
Msgpack small                    0.010000   0.000000   0.010000 (  0.002568)
Msgpack large                    0.180000   0.000000   0.180000 (  0.192238)
Msgpack complex                  0.040000   0.000000   0.040000 (  0.041482)
Msgpack long array               0.070000   0.000000   0.070000 (  0.065986)
2017-04-24 17:49:30 -04:00
Matt Burke 5c88d933e0 benchmark the new BERT encoder
It's slightly slower than plain msgpack, but still much better than
older BERT.

                                     user     system      total        real
BERT v1 tiny                     0.020000   0.000000   0.020000 (  0.019957)
BERT v1 small                    0.150000   0.000000   0.150000 (  0.141066)
BERT v1 large                    0.710000   0.000000   0.710000 (  0.723820)
BERT v1 complex                  2.950000   0.000000   2.950000 (  2.972712)
BERT v1 long array               3.870000   0.000000   3.870000 (  3.898899)
BERT v2 tiny                     0.010000   0.000000   0.010000 (  0.017890)
BERT v2 small                    0.160000   0.000000   0.160000 (  0.159581)
BERT v2 large                    0.720000   0.000000   0.720000 (  0.733793)
BERT v2 complex                  2.960000   0.010000   2.970000 (  2.975499)
BERT v2 long array               4.080000   0.000000   4.080000 (  4.106795)
BERT v3 tiny                     0.020000   0.000000   0.020000 (  0.024472)
BERT v3 small                    0.020000   0.000000   0.020000 (  0.025297)
BERT v3 large                    0.320000   0.020000   0.340000 (  0.337157)
BERT v3 complex                  0.090000   0.000000   0.090000 (  0.085884)
BERT v3 long array               0.100000   0.000000   0.100000 (  0.104439)
JSON tiny                        0.010000   0.000000   0.010000 (  0.007604)
JSON small                       0.010000   0.000000   0.010000 (  0.014245)
JSON large                       2.450000   0.010000   2.460000 (  2.473644)
JSON complex                     0.170000   0.000000   0.170000 (  0.174540)
JSON long array                  0.350000   0.000000   0.350000 (  0.357081)
YAJL tiny                        0.010000   0.000000   0.010000 (  0.005566)
YAJL small                       0.020000   0.000000   0.020000 (  0.019177)
YAJL large                       1.060000   0.030000   1.090000 (  1.094342)
YAJL complex                     0.300000   0.000000   0.300000 (  0.307467)
YAJL long array                  0.140000   0.000000   0.140000 (  0.136261)
Ruby tiny                        0.000000   0.000000   0.000000 (  0.002919)
Ruby small                       0.010000   0.000000   0.010000 (  0.008211)
Ruby large                       0.000000   0.010000   0.010000 (  0.009826)
Ruby complex                     0.020000   0.000000   0.020000 (  0.013560)
Ruby long array                  0.080000   0.000000   0.080000 (  0.082170)
Msgpack tiny                     0.000000   0.000000   0.000000 (  0.002561)
Msgpack small                    0.000000   0.000000   0.000000 (  0.003771)
Msgpack large                    0.190000   0.000000   0.190000 (  0.195700)
Msgpack complex                  0.040000   0.010000   0.050000 (  0.044514)
Msgpack long array               0.070000   0.000000   0.070000 (  0.071905)
2017-04-21 10:36:27 -04:00
Matt Burke 4fa5e2e2d3 Benchmark dat msgpack 2017-04-21 09:03:53 -04:00
Carlos Martín Nieto 70220ecfdc Bring back the smaller 'large' decode payload
The actually-large payload is too large to be of particular use.
2016-05-23 15:33:08 +02:00
Carlos Martín Nieto 5a4e3a0cba Use rake-compiler
Don't reinvent this particular wheel. There's still a mention or two of
`.bundle` which is what we have on OS X. So some of the cleaning up
just did not work on anything else.
2016-05-23 15:33:07 +02:00
Aaron Patterson 2983829c66
introduce a new buffered writer method
This method will buffer writes, but to an array rather than to a
StringIO.  This allows us to calculate the size of the BERT packet that
we're going to send *without* copying large strings in to a new buffer.
Writes might take a bit more CPU, but will take fare less memory.
2016-05-20 11:23:43 -07:00
Carlos Martín Nieto f72b45206f Bundlerize 2016-05-19 19:08:33 +02:00
Tom Preston-Werner e367e8f095 make decoder bench test C ext and Ruby version 2009-10-26 08:16:57 -07:00
Tom Preston-Werner 1bb3ed514e add encoder benchmarker 2009-10-24 19:57:24 -07:00
Tom Preston-Werner 92b1b825bc decode-only benchmark runner 2009-10-24 19:50:40 -07:00
Tom Preston-Werner 8a20b33539 smarter C encoder and remove all references to List 2009-10-24 18:28:44 -07:00
Tom Preston-Werner f0524d23c8 eliminate unneeded array traversal and update benches 2009-10-24 12:01:18 -07:00
Tom Preston-Werner 873c26fba8 make decoder do single pass 2009-10-24 02:21:04 -07:00
Tom Preston-Werner 1fc17e94f5 add benchmark runner and results 2009-10-24 00:50:20 -07:00