delnan is correct that using ref counting in addition to marking and sweep will not speed up a significant mark and sweep speed, but it can still serve an important purpose.
If almost all objects are destroyed (using the ref count) as soon as they get out of scope, then your interpreter will not collect almost as much memory, in which case the GC will not need to be called as often.
Link counting takes place at a constant time, and the performance hit occurs in such small pieces that the hit is really not even comparable with the label and sweep algorithm. This is a compromise, but from the point of view of users, microscopic pauses occurring every second may be better than sudden, arbitrary pauses that persist for a considerable period of time. Naturally, it depends on the application.
This is the rationale for combining CPython between the two methods; a circular garbage collector rarely (if ever) should be called because if the program does not have or only a few cycles, most of the memory will be freed up on the fly.
I can tell you from experience, however, implementing and supporting even a simple interpreter that relies on reference counting can be a huge pain (especially if you use simple C).
source share