# Strategies for controlling number of new elements in adaptive mesh refinement

I am working on adaptive techniques for solving some elliptic equations. The technique is based on residual on elements. My problem is that when I use a predefined tolerance for refining elements, the number of elements that refined are too much, even for a tolerance around $10^{-2}$.

I also, tried refining those elements where the error is bigger than half of the worst error, but now the number of elements that refined are too few. In both method, the locations are true locations but I need a strategy for refine elements in the middle of these, not too much and not too few. If I try by refine a fixed percentage of elements, how can I choose this percentage perfectly? Is it dependent on the problem? Is there any better way for that? Also, I have another question, each element is refined to children (each triangle is divided to four triangles), is there any better way for adding new elements? It should be noted that the result obtained by this approach are better than bisection. If there is good reference about this, please let me know.