mig21 reversethis-{moc.liamg} {ta} {pb12gim}https://twitter.com/yapw
Hola, soy Miguel. Algo que pueda ser relevante aquí... Uhmm... Me gusta escribir en mi
bitácora de BP [barrapunto.com] y en su clon en blogspot:
Yet Another Programming Weblog [blogspot.com]
Me gustaría que Barrapunto fuese un sitio con más discusiones técnicas y trato de hacer lo que está en mi mano. De todos modos, también me gusta leer flames
;)
No creo que te interese, pero en Lecturas aleatorias [blogspot.com] dejo registro de los libros que voy leyendo...
Esta es toda mi información de usuario :)
Para conocer el proceso de análisis y selecci
(Puntos:5, Informativo)Para aquellos que sepan inglés, se puede seguir el proceso de cómo se plantearon el análisis de la fragmentación de memoria en Firefox y las posibles soluciones hasta elegir jmalloc, así como las dificultades encontradas y las mejoras que han ido introduciendo, viendo las entradas sucesivas que fue escribiendo Pavlov (uno de los diseñadores):
http://wordpress.com/tag/memory-fragmentation/ [wordpress.com]
Aconsejo leerlas todas empezando desde la entrada más antigua, porque al menos a mí me pareció bastante interesante.
Firefox = Emacs
(Puntos:3, Divertido)No está en la beta3
(Puntos:2, Informativo)Sobre la gestión de memoria
(Puntos:1)( https://blog.rcorral.es/ | Última bitácora: Martes, 29 Junio de 2010, 11:58h )
El sistema operativo gestiona la memoria que las aplicaciones le solicitan. Si firefox le pide memoria y memoria y más memoria, le irá dando memoria RAM mientras pueda, y cuando ya no pueda tirará de memoria virtual (swap memory).
Si "enseñamos" a la aplicación a pedir memos memoria, a que reutilice y libere de forma más eficiente y a que mueva los bloques de memoria (vital para evitar fragmentación) de forma más eficiente, sobre cargamos menos la memoria en general y la gestión se hace mucho más rápida.
Muchas veces la cantidad de memoria consumida aumenta espectacularmente porque no se hace un free en el momento adecuado y la velocidad de ejecución puede caer por una gestión ineficiente de los bloques de memoria que tiene asignados por el sistema operativo.
Lo que no entiendo es por qué no se ha implementado un recolector de basura que automatice estas tareas. Supongo que será como matar moscas a cañonazos, pero bueno. A ver como aumenta el rendimiento con la beta 3 (y si mejora aún más en las siguientes versiones, jeje).
Saludos
Disculpe que no me disculpe
Re:Se les ve desesperadillos
(Puntos:2, Inspirado)( http://www.kuwaiba.org/ | Última bitácora: Martes, 19 Abril de 2011, 14:25h )
¡Inventario de red para las masas! Kuwaiba Open Network Inventory [sourceforge.net]
Re:malloc?
(Puntos:3, Interesante)( http://localhost:8080/ )
--------
Así habló Zaratustra.
Re:malloc?
(Puntos:5, Informativo)Otra ventaja es que, al hacer solo una asignación real (un malloc), solo con un free has liberado todas las cadenas. Eso simplifica la liberación de recursos en caso de error o al finalizar el algoritmo (claro que complica la liberación de cadenas sueltas)
No es el caso porque gecko está escrito en un subconjunto de C++ pero fíjate si es común aplicar tu propio esquema de manejo de memoria que ese lenguaje ya viene preparado para que "enchufes" el tuyo, tanto si trabajas con contenedores estándar [sgi.com] como si no lo haces [glenmccl.com]. En otros lenguajes como Java no hay esa flexibilidad pero sigues teniendo el recolector de basura que aplica su propio esquema sobre los malloc/free del sistema.
Re:malloc?
(Puntos:4, Informativo)( https://twitter.com/yapw | Última bitácora: Viernes, 13 Mayo de 2011, 21:21h )
Aquí había una firma
Re:Se les ve desesperadillos
(Puntos:1)( http://www.badopi.org/ | Última bitácora: Martes, 18 Septiembre de 2012, 18:45h )
De programación multiplataforma sí sabe (C++ lo es). De lo que no sabe es de programación GUI, ya que C++ no tiene un API estándar para hacer GUIs.
Escribiendo de demasiadas cosas [barnacity.net] desde 2003.
Re:malloc?
(Puntos:5, Informativo)( Última bitácora: Lunes, 22 Febrero de 2016, 07:16h )
Si con eso te refieres tan solo al kernel, verás que no hay ninguna llamada al sistema "malloc". Hay brk(), que simplemente aumentan el tamaño del heap y mmap() que reserva zonas completas de memoria, normalmente del tamaño de páginas.
mmap() funciona en espacio de usuario y hace uso de estas llamadas. Tú puedes usar el malloc por defecto en tu sistema, o usar el tuyo propio(en Solaris vienen varias implementaciones de malloc).
Programs should be written for people to read, and only incidentally for machines to execute
Re:Se les ve desesperadillos
(Puntos:2)( Última bitácora: Jueves, 31 Enero de 2013, 09:47h )
openSUSE [opensuse.org]
Re:malloc?
(Puntos:3, Informativo)( http://drupal.gulic.org/blog/aplatanado )
Como ejemplo me acuerdo de cuando programaba en Borlanda para Windows. Ellos decían que tenían la mejor gestión de memoria. Mucho más eficiente que la del runtime de Microsoft. Pero eso no evita que tuvieran que utilizar las llamadas al sistema para pedir la memoria al windows.