yugioh recolector qué jdk garbagecollector example español collector collection basura activar garbage-collection fortran

garbage collection - qué - ¿Fortran tiene un recolector de basura(gc)?



qué es el garbagecollector (2)

No, Fortran no tiene un recolector de basura. Sin embargo, hay un paquete adicional para F90 en esta medida. No, no lo he usado.

Hace poco estuve hablando con alguien que dijo que había programado Fortran (desde hacía mucho), pero que no podía decirme si Fortran tenía un recolector de basura. Él me dijo que no usó malloc o libre en Fortran, así que mi suposición es que sí tiene un recolector de basura. ¿O no tiene fortran un recolector de basura y solo pierde memoria, que será recuperado por el sistema operativo cuando finalice el programa? No sé nada sobre Fortran, excepto que fue usado mucho antes. También probé una búsqueda rápida en Google, pero no pude encontrar nada tan rápido.


El Fortran moderno tiene muchas formas de declarar variables. Los artículos simplemente declarados existirán mientras dure el alcance de la entidad. Entonces "real, dimension (N) :: array" declarado en un procedimiento desaparecerá automáticamente cuando regrese ese procedimiento. Naturalmente, las variables declaradas en el programa principal o las variables del módulo o comunes (obsoletas) persistirán durante la duración del programa.

Las variables se pueden asignar dinámicamente con "asignar" (para hacerlo, deben declararse con el atributo asignable). ¡Ya que las variables asignables de Fortran 95 que son locales para un procedimiento se desasignan automáticamente cuando el procedimiento retorna! ¡No perderán memoria! (Algunos programadores pueden considerar una buena práctica desasignar explícitamente las variables de todos modos, aunque no sea estrictamente necesario). (Por supuesto, puede desperdiciar memoria en el sentido de no desasignar explícitamente una variable que usted sabe que no necesito más.)

Es posible perder memoria con punteros. Puede asignar memoria con un puntero, luego asigne el puntero a otra variable, perdiendo la asociación anterior. Si no desasignó esa memoria, tiene una filtración. La necesidad de punteros es menor en Fortran que en otros idiomas ... Se pueden hacer muchas cosas con variables asignables, que son más seguras, sin pérdidas de memoria.

Preguntas relacionadas: Fortran duración asignable del array y matrices ALLOCATABLE o arreglos POINTER?