These two images both took the same amount of time to render:

no-clamping-render
yes-clamping-render

Why does the left one look like crap with all the fireflies?

They both rendered with the same amount of samples.

The only difference is: Clamping

The left side didn't use Clamping, the right one did. Without clamping, we sometimes get these bright firefly pixels.

Here's a screencast where I explain more, and do some live rendering:

Why do we get Fireflies in Cycles?

Fireflies often show up when we have small, bright light sources and glossy shaders.

Let's look at rendering from first principles to find out why this happens. (a little bit simplified)

When we're rendering, Cycles is going over each pixel one by one. We try to figure out what each pixel's color should be. To do this, Cycles takes "Samples" for that pixel.

To take a color sample, we start a light path from the camera. It shoots through the pixel we're currently looking at, into the scene and bounces around.

While bouncing, it hits objects with shaders of certain types of reflections / colors. When it finally hits a light source, we're done. 

Then we get a color value (r,g,b) for this particular sample. Taking one sample per pixel is nowhere near enough to get a good looking render. (try setting the Samples to 1 and enjoy the show)

So each pixel needs many samples. Then we take the average of all those samples to get the final pixel color.

You might imagine that it is a matter of random luck whether we find a certain bright light source or not. And you're right, so to get a good average according to statistics, we need to take a lot of samples.

What if there is a tiny chance that a light path hits a very bright light source? That's where you run into this issue where sometimes a pixel turns out crazy bright and becomes a "firefly".

If the "true" brightness of a pixel should be, say, 0.4. But during sampling we hit such a bright light source that our average becomes 0.9, we are getting way too bright. If we took millions of samples, this would average out to be 0.4 ish again. But we ain't got time to take millions of samples per pixel..

That's why those bright firefly pixels show up.

How Clamping helps

So if we want to save time, we need to look at some tricks. One of those tricks is Clamping. If we know some low amount of our samples get crazy bright, we can limit that brightness, or clamp it down.

Clamping caps the brightness of Samples to the threshold value you choose.

If we cap the brightness of the brightest pixels, it brings our average down. In a way it "protects" the brightness of a pixel from blowing up by those outlier samples.

Clamping is not an on/off switch. You can do a little bit of clamping, or a lot. The higher the Clamping value, the less of an effect it has. Because it only affects the samples that are brighter than our Clamp value.

Downsides of clamping

Clamping does come with a tradeoff: We lose accuracy.

If we compare rendering with statistics, we can see that there is an issue here. Lowering the brightest samples like this will lower our final average.

Even though those fireflies "look" incorrect. They are actually real brightness values that Cycles calculated. So if we mess with the samples, lowering the brightness, we lower the total brightness of the scene.

This means that we lose physical accuracy when we use clamping. Is that bad? It depends.

If for your render physical accuracy is important, yes it's bad to clamp the samples down.

For photorealistic rendering, we do want to get as accurate as possible. So clamping can reduce the believability of a scene in a way. But so does a bunch of fireflies.

So if the look is the most important, I'd say we can get away with a little bit of Clamping. And so do the Blender devs, because by default, the indirect light paths are being clamped with a value of 10.

For cartoons or stylized renders:

I'd say clamp away and make sure everything looks good and noise free :)

This is original image without clamping, and with clamping

(at tens of thousands of samples to get it to clean up)

Without Clamping
Without Clamping
With Clamping (at 10)
With Clamping (at 10)

You can see some spots in the clamped version are missing some brightness.

If you didn't know better, the clamped one looks decent and might be "photorealistic enough". But seeing what it could have been makes you feel like the clamped one is missing something.

In the end, as with most of these tricks to render faster, it's about finding the right balance.

Indirect vs Direct light paths

In the early versions of Cycles, we only had one Clamping setting. All samples would get the same amount of Clamping.

Now, we can separate the clamping value for indirect and direct light paths, which is super useful.

Light path samples are direct when there is only one bounce between the camera and the light source.

Light paths are indirect when we get two or more bounces.

An illustration might help:

Direct Light Path
Direct Light Path
Indirect Light Path
Indirect Light Path

The great thing about this separation is that we tend to want to leave the direct lighting alone.

Clamping direct light paths can have a too extreme effect on the render. And most noise and firefly issues are a result of indirect light paths anyway.

So this is what the current Blender defaults are set at:

Blender's default Clamping settings
Blender's default Clamping settings

In general I'd say it's good to start clamping the indirect light paths first. If that solves the issue, great. If not, you could see if clamping direct paths helps.

Your Render Workflow

Fireflies can be frustrating, but Clamping can be a great solution if you can give up a bit of accuracy.

I recommend using it together with other things like adaptive sampling and denoising.

It's a good idea to experiment with different clamping values to see what it does to the final image. There's no one size fits all solution here so you'll see it will be different for each scene you work on.

The lower the clamp setting, the more brightness you take away from the scene. (Except for 0.0 which turns off clamping)

Indirect light paths tend to cause more noise and fireflies. So start by clamping these first.

I hope that was useful! If your render times are still unacceptable, upload your .blend file and see if we can help get it done faster :)