Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ekump/eval bench perf for io read impl #636

Closed
wants to merge 14 commits into from

Commits on Sep 17, 2024

  1. Configuration menu
    Copy the full SHA
    2c0400d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bebc32a View commit details
    Browse the repository at this point in the history
  3. WIP: Cleanup

    ekump committed Sep 17, 2024
    Configuration menu
    Copy the full SHA
    afba2ae View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3c8e7cb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cdb4528 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0df2450 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ed533c7 View commit details
    Browse the repository at this point in the history
  8. improve decoding tests

    ekump committed Sep 17, 2024
    Configuration menu
    Copy the full SHA
    a849d85 View commit details
    Browse the repository at this point in the history
  9. Refactor BytesWrapper away

    Bytes itself is already a structure with a slice into some underlying bytes.
    Thus, we are adding a cheap way to directly modify the slice of the Bytes struct.
    
    To facilitate this, we now store the tuple (ptr, len) as a &[] slice within the Bytes struct. The representation of these is exactly identical to before, but it allows trivial manipulation of the slice via direct assignment or &mut &[u8] reference.
    
    The way the underlying field was exposed on the BytesWrapper struct was also unsound. Access to it was not wrapped within an unsafe method.
    
    The decoder code can now trivially clone() the given Bytes struct and carry it around, directly shrinking the slice size of the underlying Bytes instance as the data is being processed.
    
    Additionally, there now exist two helper methods for numbers and strings (read_string_bytes and read_number_bytes) which handle a bit of the boilerplate.
    Sadly it is necessary to always write "unsafe { buf.as_mut_slice() }", but this is necessary for soundness, we only can actually guarantee safety when calling the actual decode functions, as long as we want to carry Bytes around.
    
    Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
    bwoebi authored and ekump committed Sep 17, 2024
    Configuration menu
    Copy the full SHA
    e52927f View commit details
    Browse the repository at this point in the history
  10. Drop redundant clone

    Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
    bwoebi authored and ekump committed Sep 17, 2024
    Configuration menu
    Copy the full SHA
    2cda85c View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    47a022b View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    02202f9 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    8fb3ac6 View commit details
    Browse the repository at this point in the history
  14. update 3rd party license file

    ekump committed Sep 17, 2024
    Configuration menu
    Copy the full SHA
    16f094c View commit details
    Browse the repository at this point in the history