Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Utilities.cs
Go to the documentation of this file.
3
4namespace System.Buffers;
5
6internal static class Utilities
7{
8 internal enum MemoryPressure
9 {
10 Low,
11 Medium,
12 High
13 }
14
15 [MethodImpl(MethodImplOptions.AggressiveInlining)]
16 internal static int SelectBucketIndex(int bufferSize)
17 {
18 return BitOperations.Log2((uint)(bufferSize - 1) | 0xFu) - 3;
19 }
20
21 [MethodImpl(MethodImplOptions.AggressiveInlining)]
22 internal static int GetMaxSizeForBucket(int binIndex)
23 {
24 return 16 << binIndex;
25 }
26
28 {
29 GCMemoryInfo gCMemoryInfo = GC.GetGCMemoryInfo();
30 if ((double)gCMemoryInfo.MemoryLoadBytes >= (double)gCMemoryInfo.HighMemoryLoadThresholdBytes * 0.9)
31 {
32 return MemoryPressure.High;
33 }
34 if ((double)gCMemoryInfo.MemoryLoadBytes >= (double)gCMemoryInfo.HighMemoryLoadThresholdBytes * 0.7)
35 {
36 return MemoryPressure.Medium;
37 }
38 return MemoryPressure.Low;
39 }
40}
static int GetMaxSizeForBucket(int binIndex)
Definition Utilities.cs:22
static int SelectBucketIndex(int bufferSize)
Definition Utilities.cs:16
static MemoryPressure GetMemoryPressure()
Definition Utilities.cs:27
static GCMemoryInfo GetGCMemoryInfo()
Definition GC.cs:37
Definition GC.cs:8
static int Log2(uint value)
long HighMemoryLoadThresholdBytes