Me pregunto cuáles son las diferencias o si es el mismo en ambos.¿Cómo se hace la recolección de basura en Java y cómo se compara con .net?
Respuesta
Encontré este link de mi otro question on SO que responde un poco acerca de las diferencias de recolección de basura en Java y .NET/C# . Para otros que están en busca de este tipo de información, aquí lo es-
En los objetos de Java se crean en el dinámico utilizando la nueva palabra clave. La mayoría de las clases en C# se crean en el montón utilizando la nueva palabra clave. También al igual que la JVM gestiona la destrucción de objetos también lo hace el CLR a través de un Mark y recolección de basura compacto algoritmo
NOTA: C# también es compatible con pila de base clases, llamados tipos de valores, que son discuten más abajo.
http://www.brpreiss.com//books/opus5/html/page428.html tiene buena información y Marc y algoritmo compacto. –
Supongo que no existe una diferencia conceptual. Como los modelos de memoria son levemente diferentes (for example volative difference), la realización puede variar.
Quizás no haya una diferencia conceptual en un nivel alto (es decir, la recolección de basura en ambas plataformas tiene la misma función: limpiar objetos que ya no se referencian), pero hay varios algoritmos diferentes para hacerlo, por lo que hay diferencias importantes en implementación, incluso entre diferentes versiones de la JVM de Sun, por ejemplo. – Jesper
En mi humilde opinión, si necesita preocuparse acerca de cómo funciona GC en el 99% significa que no necesita GC en absoluto. –
Esta pregunta no responde.
En primer lugar, ninguna de las especificaciones relevantes dirá nada sobre cómo Java o .net debería implementar la recolección de basura. Entonces, literalmente, no hay ninguna "manera en que GC se haga" en Java o en .net. En segundo lugar, los detalles de cómo se implementa GC difieren entre los distintos proveedores para Java y .net respectivamente, y para cualquier proveedor el GC puede cambiar con cada plataforma, cada versión principal, versión menor e incluso cada versión de parche. Además de eso, algunas implementaciones de Java le permiten elegir entre diferentes recolectores de basura usando opciones de línea de comando.
Finalmente, realmente no importa cómo se implementa el GC en una implementación de Java o .NET provisto que se puede hacer funcionar según lo requerido por la aplicación. Y para Java, la respuesta es que puede para la mayoría de los tipos de aplicaciones. (Las excepciones son típicamente sistemas/aplicaciones con requisitos duros en tiempo real o restricciones de memoria muy ajustadas.)
Pero para obtener más información básica y teoría básica: http://stackoverflow.com/questions/2910224/java-garbage-collection/2922042#2922042 –
@Andreas_D: hay descripciones más detalladas del GC de Java que el referido. Y las dos páginas mencionadas son antiguas. Los GC de Java definitivamente han cambiado significativamente desde 1.4.1. –
- 1. Cómo depurar la Recolección de basura .net?
- 2. ¿cómo se compara y se compara el trabajo?
- 3. ¿Cuándo y cómo se marca un cargador de clases java para la recolección de basura?
- 4. recolección de basura de java
- 5. Recolección de basura en .NET (generaciones)
- 6. ¿Cómo se compara JavaFX con WPF?
- 7. multiprocesamiento y recolección de basura
- 8. Cómo investigar la excesiva recolección de basura de Java
- 9. y recolección de basura
- 10. ¿Cómo se compara el despliegue de aplicaciones .NET con la implementación de aplicaciones web Java?
- 11. .NET Recolección de basura e hilos nativos
- 12. Recolección de basura en .NET 4.0
- 13. Cuánto tiempo se debe dedicar a la recolección de basura
- 14. Criterios para desencadenar la recolección de basura en .Net
- 15. ¿Cómo se compara RabbitMQ con Mule?
- 16. actualización del navegador no hace la recolección de basura
- 17. ¿La recolección de basura hace que python sea más lento?
- 18. Recolección de basura
- 19. ¿Cómo mejorar el rendimiento de la recolección de basura?
- 20. Java no recolección de basura memoria
- 21. ¿Cómo se compara Archiva con Nexus?
- 22. Asignación de estructuras de pila y de montón en Go, y cómo se relacionan con la recolección de basura
- 23. ¿Cómo se compara Spring para Python con Spring para Java?
- 24. Activación de una recolección de basura .NET externamente
- 25. ¿Cómo se compara Asp.Net MVC con Java MVC frameworks?
- 26. ¿Puedo forzar la recolección de basura en Java?
- 27. ¿Hay un evento para cuando se produce la recolección de basura en .NET?
- 28. ¿Diferencia entre el fondo y la recolección de basura concurrente?
- 29. ¿Cómo se compara Voldemort con Cassandra?
- 30. ¿La basura acumulada se recoge en Java?
¿La gente que vota para cerrar esto como "no es una pregunta real" se preocupa por explicar sus motivos? No es que el tipo tenga 100 representantes. – Josh
La parte 1 ("cómo se hace el gc en Java") ha sido cubierta por docenas de preguntas sobre SO. –
@Andreas para citar a Dylan "Si hay un pensamiento original, podría usar uno en este momento". A esta altura, todas las preguntas se han formulado sobre SO. Pero si la gente quiere cerrarlo como un duplicado, al menos elija esa opción del menú porque da las referencias de OP a las otras publicaciones. – Josh