Problem about glReadPixels()

After I render my 3D scene to frame-buffer, I use glReadPixels() to read back to system memory and do more works for the image.
But it’s so slow and it overloads CPU. So does anyone have some good techniques to solve it?

This was discussed 4.789*10³² times already.

Please use the search function of the forum, thanks!