Theoretical information, since I do not have access to profiling information.
1) Adding a finalizer method extends the life of the object, since it cannot be collected until the finalize() method is run.
2) finalize
thread runs on lower priority than garbage collector. also there is no guarantee when it will run.
3) And the one common problem that occurs is that objects can be ressurected by another referrer even after being put on the finalizer queue.