Skip to content

Conversation

@antongrbin
Copy link

@antongrbin antongrbin commented Apr 19, 2022

Note to reviewer

Motivation

Reducing the dependencies that json_format.py is making is helping us create a more stable fork of that file in noom-contracts.

See concrete problem here, where mypy fails because it can't find type hints on the google.protobuf.internal library.

See code comment above TruncateToFourByteFloat

Testing completed

Ran python unit tests as described in test plan in #1.

@antongrbin antongrbin requested a review from wesmoncrief April 19, 2022 13:43
@antongrbin antongrbin requested review from ifabijanovic and removed request for wesmoncrief May 30, 2022 08:45
Comment on lines 79 to 80
# protobuf
# library.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: strange line breaks 😄

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed! thanks


# NOTE(anton): same comment from above TruncateToFourByteFloat applies here.
def ToShortestFloat(original):
"""Returns the shortest float that has same value in wire."""

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this supposed to be commented out? Or is this some kind of logging?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The """ is the python way to put a comment about what a method does.

Explained here:
https://stackoverflow.com/questions/7057450/why-does-python-use-unconventional-triple-quotation-marks-for-comments

_FLOAT_MAX = float.fromhex('0x1.fffffep+127')
_FLOAT_MIN = -_FLOAT_MAX


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: extra line break

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

@antongrbin antongrbin merged commit df7b32a into json_unknown_enum_fork Jun 20, 2022
antongrbin pushed a commit that referenced this pull request Apr 25, 2023
We would like for upb_Map_Delete() to optionally return the deleted value.
Unfortunately this will require several steps since we are crossing repos.
Step #2: Point PHP and Ruby at the new temporary function.

point the protobuf repo at latest upb
regenerate the amalgamation files

PiperOrigin-RevId: 497310441
antongrbin pushed a commit that referenced this pull request Jan 10, 2024
antongrbin pushed a commit that referenced this pull request Jan 10, 2024
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 579321454
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants