Back face Culling - Efficient?

-What is the reason for back face culling?

-Does enabling/disabling it improve or decrease performance? Or does it depend on the implementation?

The back face culling avoid the gl application to draw the faces that are not visible. It increase a lot the performances when it is enabled with:

glEnable(GL_CULL_FACE);

but you have to take care of draw faces’vertice always in the same order, because opengl use the vertice order to know if a face is at the front side or the back side.