Почему при его использовании, память не освобождается после завершения всех методов.
Есть вот такой класс.
C ним поработали где-то на какой-то стадии и забыли про него на всегда
Почему память продолжает висеть. После, всю жизнь приложения.
Как можно ее освободить.
Вот пример класса, Почему память продолжает быть занятой, При том Гигабайты памяти.
using Test<int> t=new();
public class Test<T> : IDisposable
{
internal T[] cache;
int len;
int size;
private static ArrayPool<T> pool;
static Test()
{
//pool = ArrayPool<T>.Create(16*1024*1024, 16*4);
pool = ArrayPool<T>.Shared;
}
public Test(int size = 1024 * 16)
{
cache = pool.Rent(size);
len = 0;
this.size = size;
}
public void Add(T t)
{
int newIndex = len + 1;
if (newIndex == size)
{
resize(newIndex);
}
cache[len++] = t;
}
private void resize(int newLen)
{
size = (newLen ) * 2;
var temp = pool.Rent(size);
Array.Copy(cache, temp, len);
pool.Return(cache);
cache = temp;
}
Какие есть советы и рекомендации по использованию?