public void SkipListPutWorking32() { using var simpleAllocator = new ArrayBasedAllocator32(4096 * 10_000, 25); var skipList = new SkipList32(simpleAllocator); SkipListPutWorking(skipList); }
public Task CanPutInOrder32() { using var simpleAllocator = new ArrayBasedAllocator32(4096 * 50_000, 25); var skipList = new SkipList32(simpleAllocator); return(CanPutInOrder(skipList)); }
public async Task Native32Allocator() { using var simpleAllocator = new ArrayBasedAllocator32(4096 * 1024 * 10, TableHeight); var skipList = new SkipList32(simpleAllocator); var tasks = new Task[Environment.ProcessorCount]; for (var i = 0; i < tasks.Length; i++) { tasks[i] = Task.Run(() => ThreadedPut(skipList)); } await Task.WhenAll(tasks); }
public async Task CheckTableIteratorWorks() { using var allocator = new NativeAllocator32(4096 * 10_000, 25); var memoryTable = new SkipList32(allocator); var loadedWords = CommonData.Words; foreach (var word in loadedWords) { if (string.IsNullOrEmpty(word)) { continue; } var utf8 = Encoding.UTF8.GetBytes(word); var value = Encoding.UTF8.GetBytes($"VALUE={word}"); memoryTable.Put(utf8, value); } var tempPath = System.IO.Path.GetTempPath(); var fileName = System.IO.Path.Combine(tempPath, "Level2_2.trim"); System.IO.File.Delete(fileName); var fw = new TableFileWriter(fileName); await fw.SaveMemoryTable(memoryTable); using (var blockCache = new MMapBlockCache()) { var loadedTable = new TableFile(fileName, blockCache); await loadedTable.LoadAsync(); var count = 0; await foreach (var item in loadedTable) { count++; var key = Encoding.UTF8.GetString(item.Key); var value = Encoding.UTF8.GetString(item.Value); Assert.Equal($"VALUE={key}", value); } Assert.Equal(CommonData.Words.Length, count); } System.IO.File.Delete(fileName); }