MyAwesomeCache.Library
1.0.0
dotnet add package MyAwesomeCache.Library --version 1.0.0
NuGet\Install-Package MyAwesomeCache.Library -Version 1.0.0
<PackageReference Include="MyAwesomeCache.Library" Version="1.0.0" />
<PackageVersion Include="MyAwesomeCache.Library" Version="1.0.0" />
<PackageReference Include="MyAwesomeCache.Library" />
paket add MyAwesomeCache.Library --version 1.0.0
#r "nuget: MyAwesomeCache.Library, 1.0.0"
#:package MyAwesomeCache.Library@1.0.0
#addin nuget:?package=MyAwesomeCache.Library&version=1.0.0
#tool nuget:?package=MyAwesomeCache.Library&version=1.0.0
FastCollections.Net 🚀
FastCollections.Net — это набор высокопроизводительных структур данных для C#, оптимизированных для быстрого поиска, эффективного кэширования и работы под высокой нагрузкой.
Хватит использовать стандартный List.Find(), который заставляет ваш CPU потеть! Переходите на алгоритмически оптимальные решения.
🔥 Основные возможности
- SmartCache (LRU + TTL): Кэш, который сам выкидывает старые данные и следит за временем жизни (Time To Live) объектов.
- AutoSortedList: Список, который поддерживает себя в отсортированном состоянии, обеспечивая поиск за ****.
- Zero-Dependency: Никаких лишних зависимостей. Только чистый и быстрый C#.
🚀 Быстрый старт
Установка
dotnet add package FastCollections.Net
Использование SmartCache (LRU + TTL)
Идеально подходит для кэширования ответов API или тяжелых запросов к БД.
// Емкость 100 элементов, время жизни каждого — 5 минут
var cache = new SmartCacheWithTtl<int, string>(100, TimeSpan.FromMinutes(5));
// Добавление данных
cache.Put(42, "Значение из глубокой базы данных");
// Мгновенное получение
string data = cache.Get(42);
Использование AutoSortedList
Для данных, которые всегда должны быть под рукой в правильном порядке.
var sortedList = new AutoSortedList<int>();
sortedList.Add(10);
sortedList.Add(1);
sortedList.Add(5);
// Данные уже внутри: [1, 5, 10]
int index = sortedList.IndexOf(5); // Поиск за O(log n)
📊 Почему это быстрее?
| Операция | Стандартный List | FastCollections | Профит |
|---|---|---|---|
| Поиск в 1 млн элементов | ~500,000 проверок | ~20 проверок | В 25,000 раз быстрее |
| Удаление старого кэша | Ручное/Полное | Автоматическое (LRU) | Экономия RAM |
🛠 Разработка и тестирование
Если вы хотите внести свой вклад или запустить тесты производительности:
- Склонируйте репозиторий.
- Откройте терминал и запустите тесты:
dotnet test
- Для запуска бенчмарков:
dotnet run -c Release --project Benchmarks
📄 Лицензия
Проект распространяется под лицензией MIT. Используйте его в своих коммерческих проектах совершенно бесплатно!
Tip: Если тебе нравится этот проект, поставь ему ⭐ на GitHub — это мотивирует меня оптимизировать код еще сильнее!
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- BenchmarkDotNet (>= 0.15.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 154 | 2/23/2026 |