ShoulO ShoulO - 1 month ago 19
C# Question

clearing memory after arrays are used in unity

I want to clear memory from "spent" arrays of vectors or integers. Arrays themselves and values inside are no longer necessary.
I am simply doing:

System.Array.Clear(SomeArray,0,SomeArray.Length );
SomeArray=null;


Does this clear the memory and it becomes available for other uses?
Or does GC still have to do it? (if so how to do it without leaving any to GC )

P.S. I figured that iterating through and nulling each value is pointless since you can't null vector or int.

thanks

Answer

This method only clears the values of the elements; it does not delete the elements themselves.

Look into below documentation: https://msdn.microsoft.com/en-us/library/system.array.clear(v=vs.110).aspx

By setting NULL is not an indication to GC to collect it. Probably you can call GC.Collect(). refer https://msdn.microsoft.com/en-us/library/system.gc.collect(v=vs.110).aspx for more information.

Also keep in mind "GC.Collect" call is a overhead.