El uso de un gestor de memoria propio es una práctica "estandar" en c++, de hecho en la stl está soportado definirle tu propio allocator, de un pool, haciendo tu las llamadas al S.0. (HeapAlloc(), etc...) o de donde te de la gana.
Todo esto no quiere decir que te bajes a nivel de RING0 y manejes tu la paginación de memoria a bajo nivel, sino que puedas, por ejemplo reutilizar bloques de memoria sin necesidad de hacer llamadas al SO o a la crt. En la msvcrt, las llamadas a new y delete son (¿eran?) bloqueantes, lo que puede causar problemas de rendimiento cuando tienes varios hilos en ejecución.
Todo esto no quiere decir que necesariamente tengas que sobrecargar new y delete, piensa más bien en ello como un "patrón de diseño" para reducir la fragmentación en las zonas donde más se produce.
No se concretamente el uso que le dan en Firefox, pero yo en el curro he tenido que escribir software para procesar TB de datos ( de acceso aleatorio ) y la gestión de memoria es algo que tienes que hacer si o si.
--
# Software development isn't just a process of creating software; it's also a process of learning how to create it
Re:Firefox = Emacs
(Puntos:3, Informativo)( http://barrapunto.com/ )
Todo esto no quiere decir que te bajes a nivel de RING0 y manejes tu la paginación de memoria a bajo nivel, sino que puedas, por ejemplo reutilizar bloques de memoria sin necesidad de hacer llamadas al SO o a la crt. En la msvcrt, las llamadas a new y delete son (¿eran?) bloqueantes, lo que puede causar problemas de rendimiento cuando tienes varios hilos en ejecución.
Todo esto no quiere decir que necesariamente tengas que sobrecargar new y delete, piensa más bien en ello como un "patrón de diseño" para reducir la fragmentación en las zonas donde más se produce.
No se concretamente el uso que le dan en Firefox, pero yo en el curro he tenido que escribir software para procesar TB de datos ( de acceso aleatorio ) y la gestión de memoria es algo que tienes que hacer si o si.
# Software development isn't just a process of creating software; it's also a process of learning how to create it