Skip to content

Conversation

YohDeadfall
Copy link
Contributor

ToLower/ToUpper methods are allocating which isn't good for properties which imply performance and no allocations (lazy is fine, but not repeating as here). For Status check I used is keyword which under the hood creates a local variable. That's not necessary since Status is a simple property with a backing field and JIT would be happy to read its value once into a register (different on .NET Fx). So let's think about it as a compensation for added lines by removing a some characters.

@elasticmachine
Copy link
Collaborator

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

@technige
Copy link

Thank you for your submission. We will review this in due course as and when someone is available on the team to do so.

@flobernd flobernd added 8.x Relates to a 8.x client version v8.1.2 labels Jul 5, 2023
Copy link
Member

@flobernd flobernd left a comment

Choose a reason for hiding this comment

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

LGTM! Thanks!

@flobernd flobernd removed the v8.1.2 label Jul 10, 2023
@flobernd flobernd merged commit 71a77de into elastic:main Jul 10, 2023
@YohDeadfall YohDeadfall deleted the no-alloc-on-validation branch July 10, 2023 12:44
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
github-actions bot pushed a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
flobernd added a commit that referenced this pull request Jul 11, 2023
* DoubleWithFractionalPortionConverter and FloatWithFractionalPortionConverter should not fall through to always throw a JSONException for non NETCore builds (#7753)

* Complted buckets JSON converter (#7738)

* Boosted non-exhaustive enum deserialization (#7737)

* Optimized `FieldConverter` (#7736)

* Removed unused JsonIgnore (#7735)

* Fixed the equality contract on Metrics type (#7733)

* No allocations in ResponseItem IsValid prop (#7731)

* Refactoring and tiny behavior fix for Ids (#7730)

---------

Co-authored-by: Florian Bernd <git@flobernd.de>
Co-authored-by: Karl-Johan Sjögren <karl.sjogren@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

8.x Relates to a 8.x client version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants