exceptionless / Exceptionless.Net

Exceptionless clients for the .NET platform
https://exceptionless.com
Other
554 stars 142 forks source link

Shrink SubmissionResponse #253

Closed benaadams closed 3 years ago

benaadams commented 3 years ago

Inspecting with ObjectLayoutInspector TypeLayout.PrintLayout<SubmissionResponse>()

Pre

Type layout for 'SubmissionResponse'
Size: 32 bytes. Paddings: 5 bytes (%15 of empty space)
|================================================================|
| Object Header (8 bytes)                                        |
|----------------------------------------------------------------|
| Method Table Ptr (8 bytes)                                     |
|================================================================|
|   0-7: String <Message>k__BackingField (8 bytes)               |
|----------------------------------------------------------------|
|  8-15: Exception <Exception>k__BackingField (8 bytes)          |
|----------------------------------------------------------------|
| 16-19: Int32 <StatusCode>k__BackingField (4 bytes)             |
|----------------------------------------------------------------|
|    20: Boolean <Success>k__BackingField (1 byte)               |
|----------------------------------------------------------------|
|    21: Boolean <BadRequest>k__BackingField (1 byte)            |
|----------------------------------------------------------------|
|    22: Boolean <ServiceUnavailable>k__BackingField (1 byte)    |
|----------------------------------------------------------------|
|    23: Boolean <PaymentRequired>k__BackingField (1 byte)       |
|----------------------------------------------------------------|
|    24: Boolean <UnableToAuthenticate>k__BackingField (1 byte)  |
|----------------------------------------------------------------|
|    25: Boolean <NotFound>k__BackingField (1 byte)              |
|----------------------------------------------------------------|
|    26: Boolean <RequestEntityTooLarge>k__BackingField (1 byte) |
|----------------------------------------------------------------|
| 27-31: padding (5 bytes)                                       |
|================================================================|

Post

Type layout for 'SubmissionResponse'
Size: 24 bytes. Paddings: 4 bytes (%16 of empty space)
|=======================================================|
| Object Header (8 bytes)                               |
|-------------------------------------------------------|
| Method Table Ptr (8 bytes)                            |
|=======================================================|
|   0-7: String <Message>k__BackingField (8 bytes)      |
|-------------------------------------------------------|
|  8-15: Exception <Exception>k__BackingField (8 bytes) |
|-------------------------------------------------------|
| 16-19: Int32 <StatusCode>k__BackingField (4 bytes)    |
|-------------------------------------------------------|
| 20-23: padding (4 bytes)                              |
|=======================================================|
ejsmith commented 3 years ago

Oh wow... that's pretty interesting. Thanks!