l4 evict and swiss api improve
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user