Los navegadores son como las personas - que reciben de edad, que reciben hinchado, y se les abandonaron para los modelos más pequeños y más delgados.
Firefox no es solo un navegador, es un ecosistema. Si bien creo que las versiones recientes están bastante hinchadas, el producto central es generalmente estable.
Sin embargo, Firefox es un ecosistema/plataforma para:
1) mal escrito plug-ins
2) código JavaScript mal escrito que se ejecuta dentro de ella.
3) Adobe Flash como plataforma para videos pesados y para guiones publicitarios mal escritos como 'golpear a Osama bin Laden con un pato para reducir su tasa de hipoteca y recibir un iPod gratis * (se requiere participación).
4) Quicktime y otro reproductor multimedia.
5) Algunos incrustados código Java.
La descripción de una pérdida de memoria sugiere que una secuencia de comandos se ejecute fuera de control o que una herramienta de terceros solicite más memoria. Si alguna vez ejecuta Flash en una Mac, eso es casi un hecho junto con el 90% de utilización de la CPU.
El objetivo de la mayoría de los lenguajes de programación no es salvarlo, sino darle herramientas para que se salve. Puede escribir código incorrecto e hinchado con pérdidas de memoria en cualquier idioma, incluidos los que tienen recolección de basura.Las herramientas de terceros generalmente no están tan probadas como la plataforma en sí misma. Las páginas web que intentan hacer demasiado no son infrecuentes.
Si desea hacer un experimento para demostrar esto, obtenga una mac con Firefox y vaya a un sitio bien escrito como Stack Overflow y dedique una hora. Su uso de memoria no debería crecer mucho. Luego, dedique 5 minutos a visitar páginas aleatorias en Myspace.
Ahora voy a tratar de responder a sus preguntas basado en mis conjeturas ya que no estoy familiarizado con el código fuente
- Al cerrar todas las pestañas, ¿por qué no lo hace el uso de la memoria ve todos los hacia abajo?
Considerando que cada instancia del navegador es un proceso independiente con su propia memoria, las pestañas en una única ventana están todos dentro del mismo proceso. Firefox solía tener algún tipo de almacenamiento en memoria caché en la memoria y simplemente cerrar una pestaña no borra la información relevante inmediatamente de la memoria caché en la memoria. Si volvió a abrir una pestaña en el mismo sitio, es posible que obtenga un mejor rendimiento. Había alguna opción avanzada que le permitía desactivarla, algo así como browser.cache.memory.enable. O simplemente busca la desactivación de la memoria caché.
* Why is there no limits on extensions/themes/plugins memory usage?
Por la misma razón que Windows o Linux no tiene un proceso de investigación sobre las aplicaciones que se pueden ejecutar en ellos. Es un entorno abierto y asumes el riesgo. Si quieres un ambiente donde las aplicaciones y extensiones están 'validados', Apple podría ser el camino a seguir :)
* Why does the memory usage increase if it's left open for long periods of time?
No todos los cálculos y acciones en una secuencia de comandos tienen manifestaciones visuales. Un script podría estar haciendo algunas cosas en segundo plano (como solicitar materiales adicionales, precargar cosas, solo errores) incluso si no lo ves.
* Why are memory leaks so difficult to find and fix?
Se trata de la contabilidad. Piense en cada elemento que haya pedido prestado (incluso un bolígrafo) o que alguien le haya prestado en toda su vida. ¿Están todos contados? Las fugas de memoria son de la misma manera (tomas prestada la memoria del sistema), excepto que pasas elementos. Luego, mira las cosas en tu escritorio, ¿dejaste algo por ahí porque "podrías necesitarlo pronto" aunque probablemente no lo harás? misma historia
esta pregunta es un poco amplia. Firefox sufre filtraciones de memoria, es mejor que leas sobre ese tema. El cierre de pestañas no necesariamente libera la memoria asignada para esa pestaña. –
y tu pregunta de programación es? – KevinDTimm
@KevinDTimm es la última viñeta en la lista – David