| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using System.Diagnostics.Tracing;
- using System.Threading;
- namespace ARMeilleure.Diagnostics
- {
- [EventSource(Name = "ARMeilleure")]
- class TranslatorEventSource : EventSource
- {
- public static readonly TranslatorEventSource Log = new();
- private int _rejitQueue;
- private ulong _funcTabSize;
- private ulong _funcTabLeafSize;
- private PollingCounter _rejitQueueCounter;
- private PollingCounter _funcTabSizeCounter;
- private PollingCounter _funcTabLeafSizeCounter;
- public TranslatorEventSource()
- {
- _rejitQueueCounter = new PollingCounter("rejit-queue-length", this, () => _rejitQueue)
- {
- DisplayName = "Rejit Queue Length"
- };
- _funcTabSizeCounter = new PollingCounter("addr-tab-alloc", this, () => _funcTabSize / 1024d / 1024d)
- {
- DisplayName = "AddressTable Total Bytes Allocated",
- DisplayUnits = "MB"
- };
- _funcTabLeafSizeCounter = new PollingCounter("addr-tab-leaf-alloc", this, () => _funcTabLeafSize / 1024d / 1024d)
- {
- DisplayName = "AddressTable Total Leaf Bytes Allocated",
- DisplayUnits = "MB"
- };
- }
- public void RejitQueueAdd(int count)
- {
- Interlocked.Add(ref _rejitQueue, count);
- }
- public void AddressTableAllocated(int bytes, bool leaf)
- {
- _funcTabSize += (uint)bytes;
- if (leaf)
- {
- _funcTabLeafSize += (uint)bytes;
- }
- }
- protected override void Dispose(bool disposing)
- {
- _rejitQueueCounter.Dispose();
- _rejitQueueCounter = null;
- _funcTabLeafSizeCounter.Dispose();
- _funcTabLeafSizeCounter = null;
- _funcTabSizeCounter.Dispose();
- _funcTabSizeCounter = null;
- base.Dispose(disposing);
- }
- }
- }
|