private void Dispose(bool disposing) { if (!m_disposed) { m_disposed = true; if (disposing) { GC.SuppressFinalize(this); } foreach (var c in m_documentDataContainers) { c.Value.Dispose(); } m_memoryPool.Dispose(); } }
public unsafe void Test() { const ulong nThreads = 4; const ulong offset = 0; const ulong count = 15000000; for (var loop = 0; loop < 20; loop++) { using (var keys = GenerateKeys(nThreads * count)) { Console.WriteLine("Generated " + count * nThreads); using (var map = new ConcurrentHashmapOfKeys(_pool)) { MultiThread(InsertAndReadAction, map, keys, (int)nThreads, count, offset); //MultiThread(ReadAction, map, keys, (int) nThreads, count, offset); //Console.WriteLine("Inserted " + count * nThreads); } //TestPersistence(count, keys); Console.WriteLine("Completed test"); } //_pool.Recycle(); //_pool.DeallocateGarbage(); Console.WriteLine("Deallocated garbage"); } Console.WriteLine("Disposed keys"); //Console.ReadLine(); Console.WriteLine("Disposed map"); //Console.ReadLine(); _pool.DeallocateGarbage(); Console.WriteLine("Deallocated garbage"); Console.ReadLine(); //_pool.Recycle(); //Console.WriteLine("Recycled pool"); //Console.ReadLine(); _pool.Dispose(); Console.WriteLine("Disposed pool"); Console.ReadLine(); }