There is a lot of confusion in this thread. Let me clarify a few issues.
All (almost) SSDs are overprovisioned. This means that they have more flash memory available than they report to the OS. This allows the SSD to recycle blocks of flash more efficiently. The problem with flash is that while you can write (once) to individual sectors (pages), erasing can only be performed in large batches (blocks). Erasing is time consuming, and is necessary before a sector can be rewritten.
Without overprovisioning (and wear levelling, but that's another matter), if the OS wrote over the top of a sector, the SSD would need to copy the whole page (0.5-1 MB) into RAM, erase the whole page, then copy the whole page back with the modified sector. This is painfully slow, and converts a 4k write into a 1 MB write.
With overprovisioning, the overwrite can go into an unused block of flash memory; this is fast. The SSD can then note that the old sector is invalid. Once all the sectors in that block are noted as invalid, the block is erased and released for reuse. This avoids write amplification. Also, performance is improved by avoiding slow erase operations. (In practice, the spare flash will usually start to run out first, in that case, the block with the most invalid pages is erased, after first copying out the valid pages).
The issue now is when the recycling takes place. 1st generation drives would perform recycling during write operations. When there number of invalid sectors or spare flash level reached a preset limit, the drive would trigger a recycle process on the next write. The recycle would free up some blocks of freshly erased flash memory. The result was that once all the flash on the drive had been used once, the drive would slow down from its new state, as almost every write would trigger a recycle.
The next step was background recycling (also called garbage collection). The 2nd gen drive controllers, instead of only triggering a recycle operation when a write was issued, would, when idle, periodically recycle a few blocks, to ensure that the inventory of erased free blocks was kept to a reasonable level. This minimised the need for recycling when the drive was active, so kept performance closer to "new" levels. Drives could temporarily reduce in performance after being heavily thrashed, so that they were forced to recycle while in use.
Drives vary in what constitutes "idle". Some need a few seconds of idle time, some may only need a few miliseconds of idle time before triggering a recycle process.
Note that idle GC has nothing whatsoever to do with the filesystem; there is no interaction with the OS; no querying; no software; nothing.
The 3rd gen SSDs featured the TRIM command. The TRIM command allows the OS to tell the drive that it has finished with a particular sector, and that the drive is free to destroy that data if it wants. How drives deal with TRIM varies, according to how much data has been TRIMmed and also from drive to drive. For a single sector or a few sectors (< 1MB), what happens is that the drive simply notes the sector as invalid. The next time the drive performs a recycle, it will be able to free up more blocks for erasure, as TRIMmed sectors will be able to participate (not just overwritten sectors). In the event that a TRIM command is issued on a large file, and the TRIMmed area involves entire erase blocks, most drives will immediately recycle those entire blocks (although some might mark them for recycling, and only recycle them as part of their normal recycling process).
Summary
So, in effect, TRIM and GC are the same thing; the recycling of flash memory where the drive knows that the contents are unwanted. In the case of GC, the drive knows the contents are irrelevant because the drive, itself, is hiding the data from the OS (because it has more flash than it shows to the OS). In the case of TRIM, the drive knows the data is irrelevant because the OS has told the drive, that it no longer cares for the data.
If your drive is always being thrashed, its performance may drop even with TRIM as the drive is forced perform time-consuming block recycling while it is in use. However, TRIM will always be beneficial in terms of wear levelling (as the drive will not repeatedly copy/preserve TRIMmed data). Decent drives will try to delay the slow recycling process until the drive is idle.