hamt VS AspNetCoreDiagnosticScenarios

Compare hamt vs AspNetCoreDiagnosticScenarios and see what are their differences.

AspNetCoreDiagnosticScenarios

This repository has examples of broken patterns in ASP.NET Core applications (by davidfowl)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
hamt AspNetCoreDiagnosticScenarios
7 53
261 7,514
- -
6.9 6.0
3 months ago about 2 months ago
C C#
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

hamt

Posts with mentions or reviews of hamt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-24.
  • Visual Introduction to Hash-Array Mapped Tries (HAMTs)
    2 projects | news.ycombinator.com | 24 Aug 2023
    This isn't a very good explanation. The wikipedia article isn't great either. I like this description:

    https://github.com/mkirchner/hamt#persistent-hash-array-mapp...

    The name does tell you quite a bit about what these are:

    * Hash - rather than directly using the keys to navigate the structure, the keys are hashed, and the hashes are used for navigation. This turns potentially long, poorly-distributed keys into short, well-distributed keys. However, that does mean you have to compute a hash on every access, and have to deal with hash collisions. The mkirchner implementation above calls collisions "hash exhaustion", and deals with them using some generational hashing scheme. I think i'd fall back to collision lists until that was conclusively proven to be too slow.

    * Trie - the tree is navigated by indexing nodes using chunks of the (hash of the) key, rather than comparing the keys in the node

    * Array mapped - sparse nodes are compressed, using a bitmap to indicate which logical slots are occupied, and then only storing those. The bitmaps live in the parent node, rather than the node itself, i think? Presumably helps with fetching.

    A HAMT contains a lot of small nodes. If every entry is a bitmap plus a pointer, then it's two words, and if we use five-bit chunks, then each node can be up to 32 entries, but i would imagine the majority are small, so a typical node might be 64 bytes. I worry that doing a malloc for each one would end up with a lot of overhead. Are HAMTs often implemented with some more custom memory management? Can you allocate a big block and then carve it up?

    Could you do a slightly relaxed HAMT where nodes are not always fully compact, but sized to the smallest suitable power of two entries? That might let you use some sort of buddy allocation scheme. It would also let you insert and delete without having to reallocate the node. Although i suppose you can already do that by mapping a few empty slots.

  • Show HN: A hash array-mapped trie implementation in C
    1 project | /r/patient_hackernews | 11 Jul 2023
    1 project | /r/hackernews | 11 Jul 2023
    1 project | /r/hypeurls | 10 Jul 2023
    2 projects | news.ycombinator.com | 10 Jul 2023
  • Ask HN: What are some 'cool' but obscure data structures you know about?
    54 projects | news.ycombinator.com | 21 Jul 2022

AspNetCoreDiagnosticScenarios

Posts with mentions or reviews of AspNetCoreDiagnosticScenarios. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-30.
  • Asynchronous Programming in C#
    9 projects | news.ycombinator.com | 30 Apr 2024
    Important: following #prefer-asyncawait-over-directly-returning-task from https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/b... is not correct.

    The concerns raised are niche and edge case and task must always be forwarded as is provided there is no post-processing or resource cleanup with idisposable.

  • Give me your async/await gotchas
    3 projects | /r/dotnet | 9 Dec 2023
    This one is a pretty decent guide - https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md
  • What's the Benefit/Allure of Async/Await vs. CSP/Green Threads (and Other Concurrency Models)?
    6 projects | /r/rust | 9 Dec 2023
    The C# (mostly applicat community has e.g. https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md written by one of the Asp.Net architects. I found this in this lovely thread https://news.ycombinator.com/item?id=36785691 which expresses my views/confusion more clearly than I can express.
  • The State of Async Rust
    9 projects | news.ycombinator.com | 25 Sep 2023
    No it doesn't, hence why there are best practices guidelines written by the .NET architects, and there was a research project to add Go/Java co-routines as well.

    https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/b...

    https://twitter.com/davidfowl/status/1532880744732758018?lan...

    https://github.com/dotnet/runtimelab/issues/2057

    https://github.com/dotnet/runtimelab/issues/2398

  • Java 21 makes me like Java again
    22 projects | news.ycombinator.com | 16 Sep 2023
  • The Downsides of C++ Coroutines
    1 project | news.ycombinator.com | 13 Aug 2023
    They don't work just fine in C#, there is a reason why one of ASP.NET architects has written a guide of best practices.

    https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/b...

  • No-GIL mode coming for Python
    7 projects | news.ycombinator.com | 29 Jul 2023
    Many that praise async/await in C#, kind of forget it took about 10 years to spread across all the layer of the language and runtime, since it was done via IL rewriting, it caused several issues with F# async tasks, due to the age of the ecosystem plenty of code isn't async/await friendly and needs to be wrapped into Task.Run() or similar.

    There is a best practices guideline from one of the ASP.NET architects, https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/b...

    During last year they researched adding Go/Java's approach to .NET, but now it is too late. See the ASP.NET Q&A session at BUILD 2023.

  • Task vs threads - use cases
    2 projects | /r/dotnet | 12 Jul 2023
    The best guidance I have found was from here: AsyncGuidance.md
  • How Much Memory Do You Need to Run 1M Concurrent Tasks?
    6 projects | news.ycombinator.com | 21 May 2023
    To expand upon this thought, here is the AsyncGuidance doc[1] on why not to use .Result to get the return value of a completed Task in C#.

    To make this simple they introduced async Main[2] a few years ago.

    [1]: https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/b...

  • React developer to NET
    5 projects | /r/dotnet | 11 May 2023
    Async Guidance

What are some alternatives?

When comparing hamt and AspNetCoreDiagnosticScenarios you can also consider the following projects:

multiversion-concurrency-contro

PSI - Private Set Intersection Cardinality protocol based on ECDH and Bloom Filters

RVS_Generic_Swift_Toolbox - A Collection Of Various Swift Tools, Like Extensions and Utilities

t-digest - A new data structure for accurate on-line accumulation of rank-based statistics such as quantiles and trimmed means

multiversion-concurrency-control - Implementation of multiversion concurrency control, Raft, Left Right concurrency Hashmaps and a multi consumer multi producer Ringbuffer, concurrent and parallel load-balanced loops, parallel actors implementation in Main.java, Actor2.java and a parallel interpreter

WPF - WPF is a .NET Core UI framework for building Windows desktop applications.

CPython - The Python programming language

Hot Chocolate - Welcome to the home of the Hot Chocolate GraphQL server for .NET, the Strawberry Shake GraphQL client for .NET and Banana Cake Pop the awesome Monaco based GraphQL IDE.

pyroscope - Continuous Profiling Platform. Debug performance issues down to a single line of code [Moved to: https://github.com/grafana/pyroscope]

eShopOnWeb - Sample ASP.NET Core 8.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.

MySqlConnector - MySQL Connector for .NET