You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by gi...@git.apache.org on 2017/08/04 16:12:06 UTC

[GitHub] nickva commented on issue #726: Provide a more accurate size check for max_document_size limit

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:
users@infra.apache.org


With regards,
Apache Git Services