¿Cómo predecir la profundidad de llamada máxima de un método recursivo?

Para los propósitos de estimar la profundidad máxima de la llamada que un método recursivo puede lograr con una cantidad determinada de memoria, ¿cuál es la fórmula (aproximada) para calcular la memoria utilizada antes de que ocurra un error de desbordamiento de pila?

Editar:

Muchos han respondido con "depende", lo cual es razonable, así que eliminemos algunas de las variables usando un ejemplo trivial pero concreto:

public static int sumOneToN(int n) {
    return n < 2 ? 1 : n + sumOneToN(n - 1);
}

Es fácil demostrar que la ejecución de esto en mi IDE de Eclipse explotan un poco menos de 1000 (sorprendentemente bajo para mí). ¿Podría haberse estimado este límite de profundidad de llamada sin ejecutarlo?

Edit: No puedo dejar de pensar que Eclipse tiene una profundidad de llamada máxima fija de 1000, porque tengo que998, pero hay uno para el principal, y otro para la llamada inicial al método, haciendo que1000 en todo. Esto es "demasiado redondo" un número IMHO para ser una coincidencia. Voy a investigar más a fondo. Acabo de tener Dux sobre el parámetro -Xss vm; es el tamaño máximo de pila, por lo que Eclipse Runner debe tener-Xss1000 establecer en algún lugar

Respuestas a la pregunta(6)

Su respuesta a la pregunta