{"id":19611623,"url":"https://github.com/xenoatom/xenoatom.allocators","last_synced_at":"2026-02-23T08:18:49.330Z","repository":{"id":246915249,"uuid":"824004485","full_name":"XenoAtom/XenoAtom.Allocators","owner":"XenoAtom","description":"This library provides fast, lightweight and low-level memory allocators for .NET (e.g TLSF)","archived":false,"fork":false,"pushed_at":"2024-07-22T07:33:21.000Z","size":550,"stargazers_count":40,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-07T15:09:21.371Z","etag":null,"topics":["allocator","dotnet","tlsf"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/XenoAtom.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["XenoAtom"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2024-07-04T07:15:19.000Z","updated_at":"2025-06-30T20:40:28.000Z","dependencies_parsed_at":"2024-07-22T09:08:56.519Z","dependency_job_id":null,"html_url":"https://github.com/XenoAtom/XenoAtom.Allocators","commit_stats":null,"previous_names":["xenoatom/xenoatom.allocators"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/XenoAtom/XenoAtom.Allocators","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XenoAtom%2FXenoAtom.Allocators","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XenoAtom%2FXenoAtom.Allocators/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XenoAtom%2FXenoAtom.Allocators/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XenoAtom%2FXenoAtom.Allocators/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XenoAtom","download_url":"https://codeload.github.com/XenoAtom/XenoAtom.Allocators/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XenoAtom%2FXenoAtom.Allocators/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29740000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allocator","dotnet","tlsf"],"created_at":"2024-11-11T10:41:23.017Z","updated_at":"2026-02-23T08:18:49.205Z","avatar_url":"https://github.com/XenoAtom.png","language":"C#","funding_links":["https://github.com/sponsors/XenoAtom"],"categories":[],"sub_categories":[],"readme":"# XenoAtom.Allocators [![ci](https://github.com/XenoAtom/XenoAtom.Allocators/actions/workflows/ci.yml/badge.svg)](https://github.com/XenoAtom/XenoAtom.Allocators/actions/workflows/ci.yml) [![NuGet](https://img.shields.io/nuget/v/XenoAtom.Allocators.svg)](https://www.nuget.org/packages/XenoAtom.Allocators/)\n\n\u003cimg align=\"right\" width=\"160px\" height=\"160px\" src=\"https://raw.githubusercontent.com/XenoAtom/XenoAtom.Allocators/main/img/XenoAtom.Allocators.png\"\u003e\n\nXenoAtom.Allocators is a fast, lightweight and low-level memory allocator for .NET.\n\n## ✨ Features\n\n- Implementation of a [TLSF (Two-Level Segregated Fit) allocator](http://www.gii.upv.es/tlsf/) with the following features\n  - Implementation of the paper [TLSF: a NewDynamic Memory Allocator for Real-Time Systems](http://www.gii.upv.es/tlsf/files/papers/ecrts04_tlsf.pdf)\n  - Provides an agnostic backend chunk allocator architecture (native memory, managed memory, custom e.g GPU memory...)\n  - 4GB of addressable maximum allocation size.\n  - Minimum allocation size/alignment of 64 bytes (32 bytes overhead per allocation)\n  - Configurable power-of-two alignment per allocator instance.\n- NativeAOT compatible.\n- Support for `net8.0`+\n\n## 📖 User Guide\n\nFor more details on how to use XenoAtom.Allocators, please visit the [user guide](https://github.com/XenoAtom/XenoAtom.Allocators/blob/main/doc/readme.md).\n\n## 📊 Benchmarks\n\nThe benchmark is available in the [XenoAtom.Allocators.Bench](src/XenoAtom.Allocators.Bench/BenchAllocator.cs).\n\nIt is comparing the performance of the TLSF allocator against the standard `malloc`/`free` from the C runtime library.\n\nThe benchmark consists of making 2048 allocations and frees within a range of random sizes between `64, 96, 150, 200, 400, 1024, 4096` bytes.\n\n```\nBenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3810/23H2/2023Update/SunValley3)\nAMD Ryzen 9 7950X, 1 CPU, 32 logical and 16 physical cores\n.NET SDK 8.0.300\n  [Host]     : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI\n  DefaultJob : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI\n```\n\n| Method | Mean      | Error    | StdDev   | Ratio | RatioSD |\n|------- |----------:|---------:|---------:|------:|--------:|\n| Tlsf   |  82.27 us | 1.285 us | 1.202 us |  0.78 |    0.02 |\n| Libc   | 105.34 us | 1.898 us | 2.110 us |  1.00 |    0.00 |\n\nThe benchmark shows that the **TLSF allocator is 20%+ faster** than the standard `malloc`/`free` from the C runtime library (MSVC C Runtime on Windows).\n\n\n## 🪪 License\n\nThis software is released under the [BSD-2-Clause license](https://opensource.org/licenses/BSD-2-Clause). \n\n## 🤗 Author\n\nAlexandre Mutel aka [XenoAtom](https://xoofx.github.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxenoatom%2Fxenoatom.allocators","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxenoatom%2Fxenoatom.allocators","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxenoatom%2Fxenoatom.allocators/lists"}