public void CombinedTest() { var slot = Thread.AllocateDataSlot(); object o; int ic = IterationCount; using (new Measurement("Instance field", MeasurementOptions.Log, ic)) for (int i = 0; i < ic; i++) { o = InstanceField; } using (new Measurement("Volatile instance field", MeasurementOptions.Log, ic)) for (int i = 0; i < ic; i++) { o = VolatileInstanceField; } using (new Measurement("Static field", MeasurementOptions.Log, ic)) for (int i = 0; i < ic; i++) { o = StaticField; } Host host = new Host(); using (new Measurement("Static field of Host", MeasurementOptions.Log, ic)) host.GetStaticField(ic); host = new Host <int>(); using (new Measurement("Static field of Host<int>", MeasurementOptions.Log, ic)) host.GetStaticField(ic); host = new Host <Array>(); using (new Measurement("Static field of Host<Array>", MeasurementOptions.Log, ic)) host.GetStaticField(ic); ic /= 100; using (new Measurement("ThreadStatic field", MeasurementOptions.Log, ic)) for (int i = 0; i < ic; i++) { o = ThreadStaticFieldAsync.Value; } ThreadData <FieldTypeTest> .Initiialize(); ThreadData <FieldTypeTest> .Set(this); using (new Measurement("Own ThreadData", MeasurementOptions.Log, ic)) for (int i = 0; i < ic; i++) { o = ThreadData <FieldTypeTest> .Get(); } byte[] bytes; int length = 128; using (new Measurement("new byte[128]", MeasurementOptions.Log, ic)) for (int i = 0; i < ic; i++) { bytes = new byte[length]; bytes[0] = (byte)i; } ic /= 10; using (new Measurement("Thread data slot", MeasurementOptions.Log, ic)) for (int i = 0; i < ic; i++) { o = Thread.GetData(slot); } }