Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Test : MonoBehaviour
- {
- public List<GameObject> TestObjects = new List<GameObject>();
- private int _offset = 0;
- private byte[] data;
- private IntPtr ptr;
- // Start is called before the first frame update
- void Start()
- {
- data = new byte[1024];
- ptr = Memory.Allocate(1024);
- Log("Test At: " + DateTime.UtcNow);
- Log("Array Span Write: " + ArraySpanTest());
- Log("Array Pointer Write: " + ArrayPointerTest());
- Log("Array Shift Write: " + ArrayShiftTest());
- Log("IntPtr Pointer Write " + IntPtrPointerTest());
- Log("IntPtr Span Write " + IntPtrSpanTest());
- Log("");
- Memory.Deallocate(ptr);
- Debug.Log("Finished");
- }
- TimeSpan ArraySpanTest()
- {
- var sw = System.Diagnostics.Stopwatch.StartNew();
- for (int i = 0; i < 1000000; i++)
- {
- _offset = 0;
- for (int j = 0; j < TestObjects.Count; j++)
- {
- BinaryHelper.WriteArraySpan(data, ref _offset, (int)TestObjects[j].transform.position.x);
- BinaryHelper.WriteArraySpan(data, ref _offset, (int)TestObjects[j].transform.position.y);
- BinaryHelper.WriteArraySpan(data, ref _offset, (int)TestObjects[j].transform.position.z);
- }
- }
- sw.Stop();
- return sw.Elapsed;
- }
- TimeSpan ArrayPointerTest()
- {
- var sw = System.Diagnostics.Stopwatch.StartNew();
- for (int i = 0; i < 1000000; i++)
- {
- _offset = 0;
- for (int j = 0; j < TestObjects.Count; j++)
- {
- BinaryHelper.WritePointer(data, ref _offset, (int)TestObjects[j].transform.position.x);
- BinaryHelper.WritePointer(data, ref _offset, (int)TestObjects[j].transform.position.y);
- BinaryHelper.WritePointer(data, ref _offset, (int)TestObjects[j].transform.position.z);
- }
- }
- sw.Stop();
- return sw.Elapsed;
- }
- TimeSpan ArrayShiftTest()
- {
- var sw = System.Diagnostics.Stopwatch.StartNew();
- for (int i = 0; i < 1000000; i++)
- {
- _offset = 0;
- for (int j = 0; j < TestObjects.Count; j++)
- {
- BinaryHelper.ShiftInt(data, ref _offset, (int)TestObjects[j].transform.position.x);
- BinaryHelper.ShiftInt(data, ref _offset, (int)TestObjects[j].transform.position.y);
- BinaryHelper.ShiftInt(data, ref _offset, (int)TestObjects[j].transform.position.z);
- }
- }
- sw.Stop();
- return sw.Elapsed;
- }
- TimeSpan IntPtrPointerTest()
- {
- var sw = System.Diagnostics.Stopwatch.StartNew();
- for (int i = 0; i < 1000000; i++)
- {
- _offset = 0;
- for (int j = 0; j < TestObjects.Count; j++)
- {
- BinaryHelper.WritePtrIntPtr(ptr, ref _offset, (int)TestObjects[j].transform.position.x);
- BinaryHelper.WritePtrIntPtr(ptr, ref _offset, (int)TestObjects[j].transform.position.y);
- BinaryHelper.WritePtrIntPtr(ptr, ref _offset, (int)TestObjects[j].transform.position.z);
- }
- }
- sw.Stop();
- return sw.Elapsed;
- }
- TimeSpan IntPtrSpanTest()
- {
- var sw = System.Diagnostics.Stopwatch.StartNew();
- for (int i = 0; i < 1000000; i++)
- {
- _offset = 0;
- for (int j = 0; j < TestObjects.Count; j++)
- {
- BinaryHelper.WriteIntPtrSpan(ptr, ref _offset, (int)TestObjects[j].transform.position.x);
- BinaryHelper.WriteIntPtrSpan(ptr, ref _offset, (int)TestObjects[j].transform.position.y);
- BinaryHelper.WriteIntPtrSpan(ptr, ref _offset, (int)TestObjects[j].transform.position.z);
- }
- }
- sw.Stop();
- return sw.Elapsed;
- }
- // Update is called once per frame
- void Update()
- {
- }
- void Log(object value)
- {
- using (StreamWriter writer = new StreamWriter("Result.txt", true))
- {
- writer.WriteLine(value);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement