Java consigue memoria disponible

¿Hay alguna buena manera de obtener la memoria restante disponible para la JVM en el tiempo de ejecución? El caso de uso de esto sería tener servicios web que fallan con gracia cuando se acercan a sus límites de memoria al rechazar las nuevas conexiones con un mensaje de error agradable "demasiadas personas que usan esto, inténtalo de nuevo más tarde", en lugar de morir abruptamente con un error OutOfMemory .

Tenga en cuenta que esto no tiene nada que ver con calcular / estimar el costo de cada objeto de antemano. En principio, podría estimar la cantidad de memoria que toman mis objetos y rechazar las nuevas conexiones basadas en esa estimación, pero eso parece un poco difícil o frágil.

Respuestas a la pregunta(8)

Su respuesta a la pregunta