ShardedCounter 1.0.0
Simplistic, atomic, interlocked counter that allows for huge numbers of operations to be performed using a "sharding" style approach to summation.
Install-Package ShardedCounter -Version 1.0.0
dotnet add package ShardedCounter --version 1.0.0
<PackageReference Include="ShardedCounter" Version="1.0.0" />
paket add ShardedCounter --version 1.0.0
🎰 Simplistic, atomic, interlocked counter that allows for huge numbers of operations to be performed using a "sharding" style approach to summation.
Installation
PM> Install-Package ShardedCounter -Version 1.0.0
Interface
This library implements the following simplistic interface:
/// <summary>
/// A simple counter interface to be used by the Sharded implementation
/// </summary>
internal interface ICounter
{
/// <summary>
/// Increase the count by the amount provided
/// </summary>
/// <param name="amount">The amount to increase the counter</param>
void Increase(long amount);
/// <summary>
/// Decrease the count by the amount provided
/// </summary>
/// <param name="amount">The amount to decrease the counter</param>
void Decrease(long amount);
/// <summary>
/// Get the current count
/// </summary>
/// <returns>The current count</returns>
long Count { get; }
}
Benchmarks
BenchmarkDotNet=v0.11.1, OS=Windows 10.0.17134.228 (1803/April2018Update/Redstone4)
Intel Core i7-6700 CPU 3.40GHz (Max: 3.41GHz) (Skylake), 1 CPU, 8 logical and 4 physical cores
[Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.3132.0
DefaultJob : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.3132.0
| Method | Mean | Error | StdDev |
|-------------------------------------------------- |--------:|---------:|---------:|
| ShardedCounterIncreaseCountOneHundredMillionTimes | 2.969 s | 0.0328 s | 0.0307 s |
| ShardedCounterDecreaseCountOneHundredMillionTimes | 3.185 s | 0.0780 s | 0.0691 s |
🎰 Simplistic, atomic, interlocked counter that allows for huge numbers of operations to be performed using a "sharding" style approach to summation.
Installation
PM> Install-Package ShardedCounter -Version 1.0.0
Interface
This library implements the following simplistic interface:
/// <summary>
/// A simple counter interface to be used by the Sharded implementation
/// </summary>
internal interface ICounter
{
/// <summary>
/// Increase the count by the amount provided
/// </summary>
/// <param name="amount">The amount to increase the counter</param>
void Increase(long amount);
/// <summary>
/// Decrease the count by the amount provided
/// </summary>
/// <param name="amount">The amount to decrease the counter</param>
void Decrease(long amount);
/// <summary>
/// Get the current count
/// </summary>
/// <returns>The current count</returns>
long Count { get; }
}
Benchmarks
BenchmarkDotNet=v0.11.1, OS=Windows 10.0.17134.228 (1803/April2018Update/Redstone4)
Intel Core i7-6700 CPU 3.40GHz (Max: 3.41GHz) (Skylake), 1 CPU, 8 logical and 4 physical cores
[Host] : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.3132.0
DefaultJob : .NET Framework 4.7.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.3132.0
| Method | Mean | Error | StdDev |
|-------------------------------------------------- |--------:|---------:|---------:|
| ShardedCounterIncreaseCountOneHundredMillionTimes | 2.969 s | 0.0328 s | 0.0307 s |
| ShardedCounterDecreaseCountOneHundredMillionTimes | 3.185 s | 0.0780 s | 0.0691 s |
Release Notes
Initial release.
Dependencies
This package has no dependencies.
Used By
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version History
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 326 | 9/8/2018 |