l4 evict and swiss api improve

This commit is contained in:
Youmu Liu
2026-10-20 18:47:31 +08:00
parent e349bcc4dd
commit 3951dd6686
7 changed files with 140 additions and 40 deletions
@@ -44,8 +44,7 @@ namespace Nitload.Common.HighPerformance.Memory
if (ReferenceEquals(predictor, _ring[idx]))
{
int end = _predict;
for (int move = i; move < end - 1; move++)
{
for (int move = i; move < end - 1; move++) {
_ring[(byte)move] = _ring[(byte)(move + 1)];
}
_ring[(byte)(end - 1)] = default!;
@@ -64,7 +63,7 @@ namespace Nitload.Common.HighPerformance.Memory
internal bool MoveNextPredictor()
{
int cur = Interlocked.Increment(ref _predict);
return cur == _enter;
return cur < _enter;
}
internal void RegistPredictor(
@@ -92,8 +91,8 @@ namespace Nitload.Common.HighPerformance.Memory
{
unchecked
{
byte idx = (byte)_consume;
_consume++;
byte idx = (byte)_enter;
_enter++;
_ring[idx] = predictor;
}
}