public void FitPreallocate() { using (var pile = new DefaultPile()) { pile.Start(); var obj1 = new Payload { ID = 1, Name = "1", Data = null }; var p1 = pile.Put(obj1, preallocateBlockSize: 4000); Aver.AreEqual(4000, pile.SizeOf(p1)); var obj2 = new Payload { ID = 2, Name = "2", Data = new byte [] { 1, 2, 3, 4, 5, 6, 7, 8 } }; Aver.IsTrue(pile.Put(p1, obj2)); Aver.AreEqual(1, pile.ObjectCount); var got = pile.Get(p1) as Payload; Aver.AreEqual(2, got.ID); Aver.AreEqual("2", got.Name); Aver.IsNotNull(got.Data); Aver.AreEqual(8, got.Data.Length); Aver.IsTrue(pile.AllocatedMemoryBytes > 0); Aver.IsTrue(pile.Delete(p1)); Aver.IsTrue(pile.AllocatedMemoryBytes == 0); Aver.IsTrue(pile.ObjectCount == 0); } }
public void FitPreallocateString() { using (var pile = new DefaultPile()) { pile.Start(); var obj1 = "abcdefgh"; var p1 = pile.Put(obj1, preallocateBlockSize: 4000); var got = pile.Get(p1) as string; Aver.AreEqual("abcdefgh", got); Aver.AreEqual(4000, pile.SizeOf(p1)); var obj2 = "abcdefghijklmnopqrst0912345"; Aver.IsTrue(pile.Put(p1, obj2)); Aver.AreEqual(1, pile.ObjectCount); got = pile.Get(p1) as string; Aver.AreEqual("abcdefghijklmnopqrst0912345", got); Aver.IsTrue(pile.AllocatedMemoryBytes > 0); Aver.IsTrue(pile.Delete(p1)); Aver.IsTrue(pile.AllocatedMemoryBytes == 0); Aver.IsTrue(pile.ObjectCount == 0); } }
public void LinkNoPreallocate() { using (var pile = new DefaultPile()) { pile.Start(); var obj1 = new Payload { ID = 1, Name = "1", Data = null }; var p1 = pile.Put(obj1); Aver.IsTrue(pile.SizeOf(p1) < 128); var obj2 = new Payload { ID = 2, Name = "2", Data = new byte [128] }; Aver.IsTrue(pile.Put(p1, obj2)); Aver.AreEqual(1, pile.ObjectCount); var got = pile.Get(p1) as Payload; Aver.AreEqual(2, got.ID); Aver.AreEqual("2", got.Name); Aver.IsNotNull(got.Data); Aver.AreEqual(128, got.Data.Length); Aver.IsTrue(pile.AllocatedMemoryBytes > 0); Aver.IsTrue(pile.Delete(p1)); Aver.IsTrue(pile.AllocatedMemoryBytes == 0); Aver.IsTrue(pile.ObjectCount == 0); } }
public void FitPreallocateByteArray() { using (var pile = new DefaultPile()) { pile.Start(); var obj1 = new byte[3]; var p1 = pile.Put(obj1, preallocateBlockSize: 4000); var got = pile.Get(p1) as byte[]; Aver.AreEqual(3, got.Length); Aver.AreEqual(4000, pile.SizeOf(p1)); var obj2 = new byte[571]; Aver.IsTrue(pile.Put(p1, obj2)); Aver.AreEqual(1, pile.ObjectCount); got = pile.Get(p1) as byte[]; Aver.AreEqual(571, got.Length); Aver.IsTrue(pile.AllocatedMemoryBytes > 0); Aver.IsTrue(pile.Delete(p1)); Aver.IsTrue(pile.AllocatedMemoryBytes == 0); Aver.IsTrue(pile.ObjectCount == 0); } }
public void LinkPreallocate() { using (var pile = new DefaultPile(NOPApplication.Instance)) { pile.Start(); var obj1 = new Payload { ID = 1, Name = "1", Data = null }; var p1 = pile.Put(obj1, preallocateBlockSize: 2000); Aver.AreEqual(2000, pile.SizeOf(p1)); var obj2 = new Payload { ID = 2, Name = "2", Data = new byte [3000] }; Aver.IsTrue(pile.Put(p1, obj2)); Aver.AreEqual(1, pile.ObjectCount); var got = pile.Get(p1) as Payload; Aver.AreEqual(2, got.ID); Aver.AreEqual("2", got.Name); Aver.IsNotNull(got.Data); Aver.AreEqual(3000, got.Data.Length); Aver.IsTrue(pile.AllocatedMemoryBytes > 0); Aver.IsTrue(pile.Delete(p1)); Aver.IsTrue(pile.AllocatedMemoryBytes == 0); Aver.IsTrue(pile.ObjectCount == 0); } }
private void btnPersonSizeOf_Click(object sender, EventArgs e) { if (lbPerson.SelectedItem == null) { return; } var pp = (PilePointer)lbPerson.SelectedItem; Text = "Size of {0} is {1:n} bytes".Args(pp, m_Pile.SizeOf(pp)); }
public void Reallocate_Delete() { using (var pile = new DefaultPile()) { pile.Start(); var obj1 = new Payload { ID = 1, Name = "1", Data = null }; var p1 = pile.Put(obj1, preallocateBlockSize: 2000); Aver.AreEqual(2000, pile.SizeOf(p1)); var a = pile.AllocatedMemoryBytes; var u = pile.UtilizedBytes; var o = pile.OverheadBytes; Console.WriteLine("Allocated: {0:n0} Utilized: {1:n0} Overhead: {2:n0}", a, u, o); Aver.AreEqual(2000, u); Aver.IsTrue(pile.Put(p1, new Payload { Data = new byte[8000] })); var a2 = pile.AllocatedMemoryBytes; var u2 = pile.UtilizedBytes; var o2 = pile.OverheadBytes; Console.WriteLine("Allocated: {0:n0} Utilized: {1:n0} Overhead: {2:n0}", a2, u2, o2); Aver.IsTrue(u2 > 10000); Aver.IsTrue(u2 > u); pile.Delete(p1); u2 = pile.UtilizedBytes; Console.WriteLine("Allocated: {0:n0} Utilized: {1:n0} Overhead: {2:n0}", a2, u2, o2); Aver.AreEqual(0, u2); } }