The UObject instances are reference-counted and garbage-collected when there are no more references to the UObject instance. Memory allocated on a UObject class derivative using ConstructObject<> or NewObject< > can also be de-allocated manually (before the reference count drops to 0) by calling the UObject::ConditionalBeginDestroy() member function.
Managed memory – de-allocating memory
Getting ready
You'd only do this if you were sure you no longer wanted UObject or the UObject class derivative instance in memory. Use the ConditionalBeginDestroy() function to release memory.