But I think GC and destructors are not a good match... so I would personally go for performance and no destructors.
Yes. That is the bottom line.
A good match for GC is the phantom reference, which notifies you when an object gets collected with no way to resurrect the collected object or access its instance variables.