Skip to content

Commit 9fe3d7e

Browse files
authored
Remove performance counters from RecyclableMemoryStream (#5088)
1 parent 8156db4 commit 9fe3d7e

File tree

2 files changed

+7
-95
lines changed

2 files changed

+7
-95
lines changed

src/Elasticsearch.Net/Providers/RecyclableMemoryStreamManager-Events.cs

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -60,62 +60,6 @@ public void Dispose() {}
6060
internal sealed partial class RecyclableMemoryStreamManager
6161
{
6262
public static readonly Events EventsWriter = new Events();
63-
private Counters Counter { get; }
64-
65-
public sealed class Counters : IDisposable
66-
{
67-
private ReadOnlyCollection<PollingCounter> Polls { get;}
68-
69-
public Counters(RecyclableMemoryStreamManager instance)
70-
{
71-
// ReSharper disable once UnusedParameter.Local
72-
PollingCounter Create(string name, Func<double> poll, string description) =>
73-
new PollingCounter(name, EventsWriter, poll)
74-
// ReSharper disable once RedundantEmptyObjectOrCollectionInitializer
75-
{
76-
#if NETSTANDARD2_1
77-
DisplayName = description
78-
#endif
79-
};
80-
81-
82-
var polls = new List<PollingCounter>()
83-
{
84-
{ Create("blocks", () => _blocks, "Pooled blocks active")},
85-
{ Create("large-buffers", () => _largeBuffers, "Large buffers active")},
86-
{ Create("large-buffers-free", () => instance.LargeBuffersFree, "Large buffers free")},
87-
{ Create("large-pool-inuse", () => instance.LargePoolInUseSize, "Large pool in use size")},
88-
{ Create("small-pool-free", () => instance.SmallBlocksFree, "Small pool free blocks")},
89-
{ Create("small-pool-inuse", () => instance.SmallPoolInUseSize, "Small pool in use size")},
90-
{ Create("small-pool-free", () => instance.SmallPoolFreeSize, "Small pool free size")},
91-
{ Create("small-pool-max", () => instance.MaximumFreeSmallPoolBytes, "Small pool max size")},
92-
{ Create("memory-streams", () => _memoryStreams, "Active memory streams")},
93-
};
94-
Polls = new ReadOnlyCollection<PollingCounter>(polls);
95-
96-
97-
}
98-
99-
private long _blocks;
100-
internal void ReportBlockCreated() => Interlocked.Increment(ref _blocks);
101-
102-
internal void ReportBlockDiscarded() => Interlocked.Decrement(ref _blocks);
103-
104-
private long _largeBuffers;
105-
internal void ReportLargeBufferCreated() => Interlocked.Increment(ref _largeBuffers);
106-
107-
internal void ReportLargeBufferDiscarded() => Interlocked.Decrement(ref _largeBuffers);
108-
109-
private long _memoryStreams;
110-
internal void ReportStreamCreated() => Interlocked.Increment(ref _memoryStreams);
111-
112-
internal void ReportStreamDisposed() => Interlocked.Decrement(ref _memoryStreams);
113-
114-
public void Dispose()
115-
{
116-
foreach(var p in Polls) p.Dispose();
117-
}
118-
}
11963

12064
[EventSource(Name = "Elasticsearch-Net-RecyclableMemoryStream", Guid = "{AD44FDAC-D3FC-460A-9EBE-E55A3569A8F6}")]
12165
public sealed class Events : EventSource

src/Elasticsearch.Net/Providers/RecyclableMemoryStreamManager.cs

Lines changed: 7 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ public RecyclableMemoryStreamManager(int blockSize, int largeBufferMultiple, int
162162

163163
for (var i = 0; i < _largePools.Length; ++i) _largePools[i] = new ConcurrentStack<byte[]>();
164164

165-
Counter = new Counters(this);
166165
EventsWriter.MemoryStreamManagerInitialized(blockSize, largeBufferMultiple, maximumBufferSize);
167166
}
168167

@@ -480,41 +479,17 @@ internal void ReturnBlocks(ICollection<byte[]> blocks, string tag)
480479
LargePoolFreeSize);
481480
}
482481

483-
internal void ReportBlockCreated()
484-
{
485-
Counter.ReportBlockCreated();
486-
BlockCreated?.Invoke();
487-
}
482+
internal void ReportBlockCreated() => BlockCreated?.Invoke();
488483

489-
internal void ReportBlockDiscarded()
490-
{
491-
Counter.ReportBlockDiscarded();
492-
BlockDiscarded?.Invoke();
493-
}
484+
internal void ReportBlockDiscarded() => BlockDiscarded?.Invoke();
494485

495-
internal void ReportLargeBufferCreated()
496-
{
497-
Counter.ReportLargeBufferCreated();
498-
LargeBufferCreated?.Invoke();
499-
}
486+
internal void ReportLargeBufferCreated() => LargeBufferCreated?.Invoke();
500487

501-
internal void ReportLargeBufferDiscarded(Events.MemoryStreamDiscardReason reason)
502-
{
503-
Counter.ReportLargeBufferDiscarded();
504-
LargeBufferDiscarded?.Invoke(reason);
505-
}
488+
internal void ReportLargeBufferDiscarded(Events.MemoryStreamDiscardReason reason) => LargeBufferDiscarded?.Invoke(reason);
506489

507-
internal void ReportStreamCreated()
508-
{
509-
Counter.ReportStreamCreated();
510-
StreamCreated?.Invoke();
511-
}
490+
internal void ReportStreamCreated() => StreamCreated?.Invoke();
512491

513-
internal void ReportStreamDisposed()
514-
{
515-
Counter.ReportStreamDisposed();
516-
StreamDisposed?.Invoke();
517-
}
492+
internal void ReportStreamDisposed() => StreamDisposed?.Invoke();
518493

519494
internal void ReportStreamFinalized() => StreamFinalized?.Invoke();
520495

@@ -537,14 +512,7 @@ private class ReportingMemoryStream : MemoryStream
537512
{
538513
private readonly RecyclableMemoryStreamManager _instance;
539514

540-
public ReportingMemoryStream(byte[] bytes, RecyclableMemoryStreamManager instance) : base(bytes)
541-
{
542-
_instance = instance;
543-
_instance.Counter.ReportStreamCreated();
544-
}
545-
546-
//NOTE DisposeAsync calls Dispose as well
547-
protected override void Dispose(bool disposing) => _instance.Counter.ReportStreamDisposed();
515+
public ReportingMemoryStream(byte[] bytes, RecyclableMemoryStreamManager instance) : base(bytes) => _instance = instance;
548516
}
549517

550518
/// <summary>

0 commit comments

Comments
 (0)