Skip to content

Testing different approaches of building queries with benchmarks

License

Notifications You must be signed in to change notification settings

antomys/CuriousBenchmarks

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn

.NET Core codecov


Logo

Curious Benchmarks

A repository housing targeted investigations and performance analyses of various .NET development approaches, offering developers insights into optimization techniques and architectural decisions.
Explore the docs (Work in progress)»

View Documentation (Work in Progress) · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments
Benchmarks Table of Contents
  1. Enum boxing-unboxing benchmarks
  2. Comparison Length check methods of collections
  3. Comparing GroupBy/Distinct/DistinctBy for getting unique items
  4. Comparing different iterators (for,foreach, linq, ref foreach, etc.)
  5. Comparing different string link formatting, dashing for dash view, concatenating and generating unique string
  6. Json Serialization/Deserialization
  7. Binary Serialization/Deserialization
  8. Sort array of T by ids from string array
  9. [WIP] String Manipulations
  10. URL Concat and Query building

About The Project

A curated collection of in-depth studies exploring various .NET development approaches, focusing on performance optimization and best practices. This repository houses detailed investigations into different techniques, architectural patterns, and implementation strategies within the .NET ecosystem. Each analysis aims to provide developers with valuable insights to enhance application efficiency and make informed decisions when designing .NET solutions.

(back to top)

Built With

.NET

(back to top)

Getting Started

Welcome to the Curious Benchmarks! This repository is designed to help you explore and understand performance characteristics of various .NET approaches. Follow these steps to get started:

Prerequisites

Installation

  1. Clone the Repository

    git clone https://github.com/antomys/CuriousBenchmarks.git
    cd .\src\main
  2. Build the Solution

    dotnet build
  3. Run Benchmarks. Navigate to a specific benchmark project and run:

    dotnet run -c Release

(back to top)

  1. Interpret Results

    • Benchmark results will be displayed in the console;
    • Detailed reports are generated in the BenchmarkDotNet.Artifacts folder.
  2. Explore and Contribute

    • Check out different benchmark projects in the repository
    • Feel free to add your own benchmarks or improve existing ones
    • Submit pull requests for any enhancements or new investigations

Happy benchmarking! If you have any questions or suggestions, please open an issue in the repository.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Ihor Volokhovych - @incomingwebhook - igorvolokhovych@gmail.com

Project Link: https://github.com/antomys/CuriousBenchmarks

(back to top)

Acknowledgments

  • Volodymyr Lyshenko
    • Volodymyr has been instrumental in expanding the scope of our performance analyses by proposing numerous innovative and insightful benchmark scenarios. His suggestions have led to the inclusion of several new benchmarks that explore previously unexamined aspects of .NET performance.
    • Through creative input, Volodymyr has helped broaden the range of .NET approaches and techniques covered in this repository, making it a more comprehensive resource for the developer community.
  • pro.net Telegram chat
    • The members of pro.net Telegram chat have provided thorough reviews of benchmarks, offering critical insights that have significantly improved the quality and reliability of performance analyses.
    • Their innovative suggestions have led to the inclusion of new benchmark scenarios and the refinement of existing ones, broadening the scope and relevance of our investigations.
    • On numerous occasions, pro.net Telegram chat experts have shared their deep knowledge of .NET internals, helping us understand and explain complex performance behaviors observed in our benchmarks.

(back to top)

About

Testing different approaches of building queries with benchmarks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published