nickva commented on issue #726: Provide a more accurate size check for 
max_document_size limit
URL: https://github.com/apache/couchdb/pull/726#issuecomment-320289334
 
 
   Created a silly benchmark to test a few approaches:
   
   https://github.com/nickva/couch_ebench
   
   The test uses a few encoders and the two in Erlang. Inputs to the test can 
be scaled by size and those sizes are provided on the command line. So size 
1000 for example for str_basic will create 1000 character string, for nested 
array will create a nested array of depth 1000, etc.
   
   The time reported is the time to run a single length check in microseconds. 
A smaller input size will be run a bunch of tries in a row then time will be 
averaged.  So inputs of size 10 will be run for 1000 times in a row, size 1000, 
10 times, size 10k+ 1 time.
   
   Example run for inputs of 10, 1000 and 10k sizes: 
   
   ```
    ./build.sh && ./run.sh 10 1000 10000
   ...
   Generating inputs...
   Running benchmark 4 encoders x 42 tests. Input size(s): [10,1000,10000]
   Finished running benchmark.
   Enc.  | Input size | Input type   | USec       | Bytes
   ------+------------+--------------+------------+----------
   
   jiffy
         |         10 |       file_1 |      170.7 |      13031
         |         10 |    float_17d |        3.2 |        201
         |         10 | float_1d_arr |        2.8 |         41
         |         10 | float_large_ |        2.9 |         71
         |         10 | int_large_ar |       15.7 |       1031
         |         10 | int_small_ar |        2.4 |         31
         |         10 |   nested_arr |        1.7 |         22
         |         10 |   nested_obj |        2.1 |         69
         |         10 |    str_basic |        0.6 |         12
         |         10 |     str_cent |        0.5 |         22
         |         10 |     str_ctr1 |        0.6 |         62
         |         10 |     str_escn |        0.5 |         22
         |         10 |     str_euro |        0.8 |         32
         |         10 |    str_hwair |        0.8 |         42
         |       1000 |       file_1 |    18171.8 |    1303001
         |       1000 |    float_17d |      280.3 |      20001
         |       1000 | float_1d_arr |      262.5 |       4001
         |       1000 | float_large_ |      233.9 |       7001
         |       1000 | int_large_ar |     1864.8 |     103001
         |       1000 | int_small_ar |      196.1 |       3001
         |       1000 |   nested_arr |      133.1 |       2002
         |       1000 |   nested_obj |      175.8 |       6009
         |       1000 |    str_basic |        2.9 |       1002
         |       1000 |     str_cent |       10.9 |       2002
         |       1000 |     str_ctr1 |        8.7 |       6002
         |       1000 |     str_escn |        6.0 |       2002
         |       1000 |     str_euro |       16.0 |       3002
         |       1000 |    str_hwair |       28.8 |       4002
         |      10000 |       file_1 |   185333.1 |   13030001
         |      10000 |    float_17d |     3046.8 |     200001
         |      10000 | float_1d_arr |     2168.3 |      40001
         |      10000 | float_large_ |     2182.0 |      70001
         |      10000 | int_large_ar |    27650.3 |    1030001
         |      10000 | int_small_ar |     2384.8 |      30001
         |      10000 |   nested_arr |     1259.9 |      20002
         |      10000 |   nested_obj |     1832.3 |      60009
         |      10000 |    str_basic |       29.1 |      10002
         |      10000 |     str_cent |       97.6 |      20002
         |      10000 |     str_ctr1 |       62.6 |      60002
         |      10000 |     str_escn |       43.7 |      20002
         |      10000 |     str_euro |      140.1 |      30002
         |      10000 |    str_hwair |      172.2 |      40002
   
   erlfast
         |         10 |       file_1 |       43.7 |      13011
         |         10 |    float_17d |        2.2 |         41
         |         10 | float_1d_arr |        1.8 |         41
         |         10 | float_large_ |       14.5 |        221
         |         10 | int_large_ar |        1.4 |       1031
         |         10 | int_small_ar |        0.4 |         31
         |         10 |   nested_arr |        0.4 |         22
         |         10 |   nested_obj |        0.8 |         69
         |         10 |    str_basic |        0.0 |         12
         |         10 |     str_cent |        0.0 |         22
         |         10 |     str_ctr1 |        0.0 |         12
         |         10 |     str_escn |        0.0 |         12
         |         10 |     str_euro |        0.0 |         32
         |         10 |    str_hwair |        0.0 |         42
         |       1000 |       file_1 |     4403.1 |    1301001
         |       1000 |    float_17d |       96.4 |       4001
         |       1000 | float_1d_arr |      104.8 |       4001
         |       1000 | float_large_ |     1355.6 |      22001
         |       1000 | int_large_ar |      172.1 |     103001
         |       1000 | int_small_ar |       29.9 |       3001
         |       1000 |   nested_arr |       34.8 |       2002
         |       1000 |   nested_obj |       64.6 |       6009
         |       1000 |    str_basic |        0.0 |       1002
         |       1000 |     str_cent |        0.0 |       2002
         |       1000 |     str_ctr1 |        0.0 |       1002
         |       1000 |     str_escn |        0.0 |       1002
         |       1000 |     str_euro |        0.0 |       3002
         |       1000 |    str_hwair |        0.0 |       4002
         |      10000 |       file_1 |    43863.5 |   13010001
         |      10000 |    float_17d |      956.9 |      40001
         |      10000 | float_1d_arr |      949.8 |      40001
         |      10000 | float_large_ |    13652.1 |     220001
         |      10000 | int_large_ar |     1421.1 |    1030001
         |      10000 | int_small_ar |      360.9 |      30001
         |      10000 |   nested_arr |      358.8 |      20002
         |      10000 |   nested_obj |      606.8 |      60009
         |      10000 |    str_basic |        0.0 |      10002
         |      10000 |     str_cent |        0.0 |      20002
         |      10000 |     str_ctr1 |        0.0 |      10002
         |      10000 |     str_escn |        0.1 |      10002
         |      10000 |     str_euro |        0.1 |      30002
         |      10000 |    str_hwair |        0.0 |      40002
   
   erlexact
         |         10 |       file_1 |      346.7 |      13031
         |         10 |    float_17d |        8.0 |        201
         |         10 | float_1d_arr |        7.6 |         41
         |         10 | float_large_ |        8.2 |         71
         |         10 | int_large_ar |        0.9 |       1031
         |         10 | int_small_ar |        1.4 |         31
         |         10 |   nested_arr |        0.5 |         22
         |         10 |   nested_obj |        1.4 |         69
         |         10 |    str_basic |        0.3 |         12
         |         10 |     str_cent |        0.5 |         22
         |         10 |     str_ctr1 |        0.3 |         62
         |         10 |     str_escn |        0.3 |         22
         |         10 |     str_euro |        0.4 |         32
         |         10 |    str_hwair |        0.3 |         42
         |       1000 |       file_1 |    35026.9 |    1303001
         |       1000 |    float_17d |      919.0 |      20001
         |       1000 | float_1d_arr |      821.8 |       4001
         |       1000 | float_large_ |      809.0 |       7001
         |       1000 | int_large_ar |       99.8 |     103001
         |       1000 | int_small_ar |       54.6 |       3001
         |       1000 |   nested_arr |       38.2 |       2002
         |       1000 |   nested_obj |      127.4 |       6009
         |       1000 |    str_basic |       26.0 |       1002
         |       1000 |     str_cent |       43.8 |       2002
         |       1000 |     str_ctr1 |       21.1 |       6002
         |       1000 |     str_escn |       24.1 |       2002
         |       1000 |     str_euro |       36.1 |       3002
         |       1000 |    str_hwair |       28.6 |       4002
         |      10000 |       file_1 |   363273.3 |   13030001
         |      10000 |    float_17d |     8589.2 |     200001
         |      10000 | float_1d_arr |     8709.6 |      40001
         |      10000 | float_large_ |     8299.4 |      70001
         |      10000 | int_large_ar |      949.6 |    1030001
         |      10000 | int_small_ar |      513.5 |      30001
         |      10000 |   nested_arr |      414.5 |      20002
         |      10000 |   nested_obj |     1216.9 |      60009
         |      10000 |    str_basic |      355.7 |      10002
         |      10000 |     str_cent |      615.7 |      20002
         |      10000 |     str_ctr1 |      261.1 |      60002
         |      10000 |     str_escn |      253.7 |      20002
         |      10000 |     str_euro |      322.0 |      30002
         |      10000 |    str_hwair |      332.6 |      40002
   
   jsone
         |         10 |       file_1 |      699.0 |      13411
         |         10 |    float_17d |       11.2 |        271
         |         10 | float_1d_arr |        9.7 |        271
         |         10 | float_large_ |       17.8 |        281
         |         10 | int_large_ar |       11.0 |       1031
         |         10 | int_small_ar |        3.1 |         31
         |         10 |   nested_arr |        1.8 |         22
         |         10 |   nested_obj |        4.5 |         69
         |         10 |    str_basic |        0.8 |         12
         |         10 |     str_cent |        1.5 |         62
         |         10 |     str_ctr1 |        1.0 |         62
         |         10 |     str_escn |        0.5 |         22
         |         10 |     str_euro |        1.5 |         62
         |         10 |    str_hwair |        2.7 |        122
         |       1000 |       file_1 |    93229.8 |    1341001
         |       1000 |    float_17d |      940.6 |      27001
         |       1000 | float_1d_arr |      974.1 |      27001
         |       1000 | float_large_ |     1857.5 |      28001
         |       1000 | int_large_ar |      987.7 |     103001
         |       1000 | int_small_ar |      137.0 |       3001
         |       1000 |   nested_arr |      112.4 |       2002
         |       1000 |   nested_obj |      295.7 |       6009
         |       1000 |    str_basic |       50.7 |       1002
         |       1000 |     str_cent |      111.1 |       6002
         |       1000 |     str_ctr1 |       70.3 |       6002
         |       1000 |     str_escn |       32.9 |       2002
         |       1000 |     str_euro |      113.2 |       6002
         |       1000 |    str_hwair |      302.7 |      12002
         |      10000 |       file_1 |   972721.8 |   13410001
         |      10000 |    float_17d |    10365.8 |     270001
         |      10000 | float_1d_arr |     9820.9 |     270001
         |      10000 | float_large_ |    18326.3 |     280001
         |      10000 | int_large_ar |    12271.9 |    1030001
         |      10000 | int_small_ar |     1423.4 |      30001
         |      10000 |   nested_arr |     1395.8 |      20002
         |      10000 |   nested_obj |     3795.6 |      60009
         |      10000 |    str_basic |      636.1 |      10002
         |      10000 |     str_cent |     1077.9 |      60002
         |      10000 |     str_ctr1 |      666.1 |      60002
         |      10000 |     str_escn |      304.4 |      20002
         |      10000 |     str_euro |     1130.7 |      60002
         |      10000 |    str_hwair |     2607.8 |     120002
   ```
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to