tafia / quick-protobuf

A rust implementation of protobuf parser
MIT License
452 stars 87 forks source link

Uplift perftests #198

Closed runfalk closed 3 years ago

runfalk commented 3 years ago

Also updates edition to 2021, removes dependency on time (since later versions uses std anyway) and removes auto generated files from source. This also fixes a bunch of deprecation warnings.

runfalk commented 3 years ago

Output from my machine:

         labels   rust-protobuf  quick-protobuf           prost      quick/rust      prost/rust
                        ns/iter         ns/iter         ns/iter               %               %

test1
          write              72               9               8            87.5            88.9
           read              42              21              12            50.0            71.4
    read no vec              21              19              11             9.5            47.6
     read reuse              26                              NA              NA

test_repeated_bool
          write              45              11              10            75.6            77.8
           read              78              56              48            28.2            38.5
    read no vec              56              34              34            39.3            39.3
     read reuse              38                              NA              NA

test_repeated_packed_int32
          write              63              25              24            60.3            61.9
           read              95              90              76             5.3            20.0
    read no vec              73              65              50            11.0            31.5
     read reuse              38                              NA              NA

test_repeated_messages
          write             137              75             121            45.3            11.7
           read             692             453             451            34.5            34.8
    read no vec             220             166             148            24.5            32.7
     read reuse              97                              NA              NA

test_optional_messages
          write             112              74              46            33.9            58.9
           read             251             138             118            45.0            53.0
    read no vec             176             109              89            38.1            49.4
     read reuse              97                              NA              NA

test_strings
          write              61              27              20            55.7            67.2
           read             141              69             169            51.1           -19.9
    read no vec             116              46             137            60.3           -18.1
     read reuse              72                              NA              NA

test_small_bytearrays
          write              89              55              52            38.2            41.6
           read             128              37             142            71.1           -10.9
    read no vec              72              18             101            75.0           -40.3
     read reuse              43                              NA              NA

test_large_bytearrays
          write            8815            5295            4954            39.9            43.8
           read            4622            1778            5841            61.5           -26.4
    read no vec            1982              27            3516            98.6           -77.4
     read reuse            1867                              NA              NA
tafia commented 3 years ago

Thanks!