MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

"about:memory" é uma página especial do Firefox que permite você ver, salvar, carregar, e comparar medidas detalhadas do uso de memória do Firefox. Também permite que você faça outras operações relacionadas com memória, tais como: disparar GC e CC, remover registros GC & CC, e remover relatórios DMD. Está presente em todas as versões e não necessita nenhuma preparação para ser usada.

Como gerar relatórios de memória

Vamos supor que você quer medir o uso de memória do Firefox. Talvez você queira investigá-lo você mesmo, ou talvez alguém lhe pediu para usar about: memory para gerar relatórios " de memória" para que eles possam investigar um problema que está ocorrendo . Siga esses passos.
  • No momento de interesse (por exemplo, uma vez que o uso de memória do Firefox ficou alto) abrir uma nova aba e digite "about:memory" na barra de endereços e aperte "Enter".
        
    Se você estiver usando um canal de comunicação onde os arquivos podem ser enviados, como o Bugzilla ou e-mail, clique em "Medir e salvar ..." botão. Isto irá abrir uma janela de ficheiros que lhe permite guardar os relatórios de memória para um arquivo de sua escolha. (O nome do arquivo terá um sufixo .json.gz.) Você pode então anexar ou fazer o upload do arquivo de forma apropriada. Os destinatários será capaz de visualizar o conteúdo deste arquivo dentro de cerca de memória: em sua própria instância Firefox.
        
    Se você estiver usando um canal de comunicação em que apenas o texto pode ser enviada, como um comentário de discussão em um site, clique no botão "Medida ..." botão. Isso fará com que uma estrutura de árvore a ser gerada texto dentro about:memory. Esta estrutura é apenas texto, de modo que você pode copiar e colar alguns ou todos este texto em qualquer tipo de buffer de texto. (Você não precisa tirar um screenshot.) Este texto contém menos do que um arquivo de medições relatórios memória, mas muitas vezes é bom o suficiente para diagnosticar problemas.

    Note-se que em ambos os casos, os dados gerados contém detalhes sensíveis à privacidade, tal como a lista completa das páginas da web que você tem aberto em outras abas. Se você não deseja compartilhar essa informação, você pode selecionar a opção "anônimos" antes de clicar em "Medir e salvar ..." ou "Medida ...". Isto fará com que os dados sensíveis a privacidade para ser retirados, mas também pode tornar mais difícil para os outros a investigar o uso de memória.
    Carregando relatos de memória de arquivo

    A maneira mais fácil para carregar relatórios de memória de arquivo é usar o "Load ..." botão. Você também pode usar o botão "... Carregar e diff" para obter a diferença entre dois arquivos de relatório de memória.

    Arquivos de relatório de memória individuais também podem ser carregados automaticamente quando about: memory é carregado anexando uma cadeia de consulta de arquivos, por exemplo:


    about:memory?uri=file:///home/username/reports.json.gz

    Isso é mais útil ao carregar arquivos de memória relatórios obtidos a partir de um dispositivo Firefox OS.

    Relatórios de memória são salvos em um arquivo JSON como gzipped. Estes ficheiros podem ser carregados como seja, mas eles também podem ser carregados depois de descompactar.
    Interpretando relatórios de memória

    Quase tudo o que você vê no about: memory tem uma dica de ferramenta explicativa. Passe o mouse sobre qualquer botão para ver uma descrição do que ele faz. Passe o mouse sobre qualquer medição para ver uma descrição do que ela significa.
    Noções básicas de medição

    A maioria das medições usar bytes como unidade, mas algumas são contagens ou percentagens.

    A maioria das medições são apresentados no prazo de árvores. Por exemplo:

     
    585 (100,0%) - preferências de serviço
     
    └──585 (100,0%) - referente
        
    ├──493 (84,27%) ── forte
        
    └───92 (15,73%) - fraco
            
    ├──92 (15,73%) ── vivo
            
    └───0 (00,00%) ── mortos

    Nós folha representam medições reais; o valor de cada nó interno é a soma de todos os seus filhos.

    O uso de árvores permite medições devem ser discriminados em outras categorias, sub-categorias, sub-sub-categorias, etc., a profundidade arbitrária, conforme necessário. Todas as medidas dentro de uma única árvore são para não-sobreposição.

    Caminhos de árvore podem ser escritas usando '/' como separador. Por exemplo, a preferência / referente / fracos krepresents / mortas o caminho para o nó final de folhas no exemplo acima árvore.

    Sub-árvores pode ser recolhido ou expandido, clicando sobre eles. Se você encontrar qualquer árvore em particular esmagadora, ele pode ser útil para recolher todas as sub-árvores imediatamente abaixo da raiz, e então, gradualmente, expandir as sub-árvores de interesse.
    Seções

    Relatórios de memória são exibidos em uma base por processo, com um processo por seção. Dentro de medições de cada processo, existem as seguintes subseções.
    As alocações explícitas

    Esta seção contém uma única árvore, chamado de "explícita", que mede toda a memória alocada via chamadas explícitas para amontoar funções de alocação (como malloc e nova) e às funções alocações não-heap (como mmap e VirtualAlloc).

    Aqui está um exemplo de uma sessão do navegador, onde abas estavam abertas para cnn.com, techcrunch.com, e arstechnica.com. Vários sub-árvores foram ampliados e outros desmoronou por causa da apresentação.

    191,89 MB (100,0%) - explícitas
    ├───63.15 MB (32,91%) - window-objetos
    │ ├──24.57 MB (12,80%) - superior (http://edition.cnn.com/, id = 8)
    │ │ ├──20.18 MB (10,52%) - ativa
    │ │ │ ├──10.57 MB (05.51%) - janela (http://edition.cnn.com/)
    │ │ │ │ ├───4.55 MB (02.37%) ++ js-compartimento (http://edition.cnn.com/)
    │ │ │ │ ├───2.60 MB (01.36%) ++ disposição
    │ │ │ │ ├───1.94 MB (01.01%) ──-folhas de estilo
    │ │ │ │ └───1.48 MB (00.77%) - (2 minúsculo)
    │ │ │ │ ├──1.43 MB (00.75%) ++ dom
    │ │ │ │ └──0.05 MB (00.02%) ── propriedade mesas-
    │ │ │ └───9.61 MB (05.01%) ++ (18 minúsculo)
    │ │ └───4.39 MB (02.29%) - js-zone (0x7f69425b5800)
    │ ├──15.75 MB (08.21%) ++ superior (http://techcrunch.com/, id = 20)
    │ ├──12.85 MB (06.69%) ++ superior (http://arstechnica.com/, id = 14)
    │ ├───6.40 MB (03.33%) ++ superior (chrome: //browser/content/browser.xul, id = 3)
    │ └───3.59 MB (01.87%) ++ (4 minúsculo)
    ├───45.74 MB (23,84%) ++ js-não-janela
    ├───33.73 MB (17,58%) ── heap-categorias
    ├───22.51 MB (11,73%) ++ heap-sobrecarga
    ├────6.62 MB (03.45%) ++ imagens
    ├────5.82 MB (03.03%) ++ trabalhadores / trabalhadores (cromo)
    ├────5.36 MB (02.80%) ++ (16 minúsculo)
    ├────4.07 MB (02.12%) ++ armazenamento
    ├────2.74 MB (01.43%) ++ startup-cache
    └────2.16 MB (01.12%) ++ xpconnect

    Alguns perícia é necessária para entender os detalhes aqui, mas existem várias coisas vale a pena apontar.

        
    Este valor "explícito" na raiz da árvore representa toda a memória alocada via chamadas explícitas para funções de alocação.
        
    A "janela-objetos" sub-árvore representa todos os objetos da janela JavaScript, o que inclui as abas do navegador e janelas de interface do usuário. Por exemplo, o "top (http://edition.cnn.com/, id = 8)" sub-árvore representa a aba aberta para cnn.com, e "top (chrome: //browser/content/browser.xul , id = 3) "representa a janela principal do navegador UI.
        
    Dentro de medições de cada janela são sub-árvores para JavaScript ("js-compartimento (...)" e "js-zona (...)"), layout, folhas de estilo, o DOM, e outras coisas.
        
    É claro que o guia cnn.com está usando mais memória do que a guia techcrunch.com, que está usando mais do que o guia arstechnica.com.
        
    Sub-árvores com nomes como "(2 minúsculo)" são nós artificiais inseridos para permitir sub-árvores insignificantes para serem recolhidos por padrão. Se você selecionar a opção "verbose" antes de medir, todas as árvores serão mostrados completamente expandida e nenhum nó artificiais será inserido.
        
    O sub-árvore "js-não-janela" representa o uso de memória JavaScript que não vem das janelas, mas a partir do núcleo do navegador.
        
    O valor "heap-categorias" representa memória alocada-pilha que não é medido por qualquer repórter memória. Este é tipicamente de 10--20% "explícito". Se ele fica mais alto, isso indica que deve ser adicionado a jornalistas de memória adicionais. DMD podem ser usadas para determinar onde deve ser adicionado estes repórteres de memória.
        
    Há medições para outros conteúdos, tais como imagens e trabalhadores, e para subsistemas do navegador, como o cache de inicialização e XPConnect.

    Alguns add-on uso de memória é identificado, como mostra o seguinte exemplo.

    ├───40,214,384 B (04.17%) - add-ons
    │ ├──21,184,320 B (02.20%) ++ {d10d0bf8-f5b5 c8b4-a8b2-2b9879e08c5d} / js-não-janela / zonas / zone (0x100496800) / compartimento ([principal Sistema], jar:file:///Users/njn/Library/Application%20Support/Firefox/Profiles/puna0zr8.new/extensions/%7Bd10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d%7D.xpi!/bootstrap.js (A partir de: recurso: //gre/modules/addons/XPIProvider.jsm: 4307))
    │ ├──11,583,312 B (01.20%) ++ jid1-xUfzOsOFlzSOXg @ jetpack / js-não-janela / zonas / zone (0x100496800)
    │ ├───5,574,608 B (00.58%) - {59c81df5-4b7a-477b-912D-4e0fdf64e5f2}
    │ │ ├──5,529,280 B (00.57%) - window-objetos
    │ │ │ ├──4,175,584 B (00.43%) ++ superior (chrome: //chatzilla/content/chatzilla.xul, id = 4293)
    │ │ │ └──1,353,696 B (00.14%) ++ superior (chrome: //chatzilla/content/output-window.html, id = 4298)
    │ │ └─────45,328 B (00,00%) ++ js-não-janela / zonas / zone (0x100496800) / compartimento ([principal Sistema], file:///Users/njn/Library/Application%20Support/Firefox/Profiles/puna0zr8.new/extensions/%7B59c81df5-4b7a-477b-912d-4e0fdf64e5f2%7D/components/chatzilla-service.js)
    │ └───1,872,144 B (00.19%) ++ treestyletab@piro.sakura.ne.jp/js-non-window/zones/zone (0x100496800)

    Mais coisas vale a pena ressaltar é como segue.

        
    Alguns complementos são identificados por um nome, como Tree Style Tab. Outros são identificados apenas por um identificador hexadecimal. Você pode olhar em cerca de: apoio para ver qual add-on de um identificador específico pertence. Por exemplo, 59c81df5-4b7a-477b-912D-4e0fdf64e5f2 é Chatzilla.
        
    Tudo uso de memória JavaScript para um add-on é medido separadamente e mostrado neste sub-árvore.
        
    Para add-ons que usar janelas separadas, como Chatzilla, o uso de memória daquelas janelas vai aparecer nesta sub-árvore.
        
    Para add-ons que usar sobreposições XUL, como Adblock Plus, o uso de memória dessas sobreposições não vai aparecer nesta sub-árvore; em vez disso ele vai estar no não-add-on sub-árvores e não serão identificáveis ​​como sendo causado pelo add-on.

    Outras Medidas

    Esta seção contém várias árvores, inclui muitos que cross-cortar as medições na árvore "explícito". Por exemplo, na árvore "explícito" todas as medições DOM e layout são discriminadas por janela pela janela, mas em "outras medidas" essas medidas são agregadas em totais para todo o navegador, como mostra o seguinte exemplo.

    26,77 MB (100,0%) - window-objetos
    ├──14.59 MB (54,52%) - de layout
    │ ├───6.22 MB (23,24%) ── conjuntos de estilo
    │ ├───4.00 MB (14,95%) ── pres-shell
    │ ├───1.79 MB (06.68%) ── quadros
    │ ├───0.89 MB (03.33%) ──-contextos estilo
    │ ├───0.62 MB (02.33%) ──-nodes de regras
    │ ├───0.56 MB (02.10%) ── pres-contextos
    │ ├───0.47 MB ​​(01.75%) ── caixas de linha
    │ └───0.04 MB (00.14%) ── texto-runs
    ├───6.53 MB (24,39%) ──-folhas de estilo
    ├───5.59 MB (20,89%) - dom
    │ ├──3.39 MB (12,66%) ── elemento-nodes
    │ ├──1.56 MB (05.84%) ──-nós de texto
    │ ├──0.54 MB (02.03%) ── outro
    │ └──0.10 MB (00.36%) ++ (4 minúsculo)
    └───0.06 MB (00.21%) ── propriedade mesas-

    Algumas das árvores nesta seção medida coisas que não cross-cortar as medições na árvore "explícito", tais como os da "preferência para os serviços" exemplo acima.

    Finalmente, no final desta secção são medições individuais, como mostra o seguinte exemplo.

        
    0.00 MB ── canvas-2d-pixels
        
    5.38 MB ── gfx-superfície-xlib
        
    0.00 MB ── GFX-texturas
        
    0.00 MB ── GFX-telhas-resíduos
              
    0 ── fantasmas janelas
      
    109,22 MB ── alocado-heap
            
    164 ── heap-pedaços
        
    1.00 MB ── heap-chunksize
      
    114.51 MB ── cometido-heap
      
    164.00 MB ── mapeado-heap
          
    4,84% ── heap-sobrecarga-ratio
              
    1 ── hospedeiras-objeto-urls
        
    0.00 MB ── imagelib-superfície-cache
        
    -Pico js-main-runtime-temporária 5,27 MB ──
              
    0 ── página falhas-rígidos
        
    203.349 ──-falhas de página-soft
      
    274,99 MB ── residente
      
    251,47 MB ​​── residente Exclusivos
    1,103.64 MB ── vsize

    Algumas medidas de nota são as seguintes.

        
    "Residente". Uso de memória física. Se você quiser uma única medida para resumir o uso de memória, esta é provavelmente a melhor.
        
    "Vsize". Uso de memória virtual. Este é frequentemente muito mais elevada do que qualquer outra medida (particularmente no Mac). Isso só realmente importa em plataformas de 32 bits, como o Win32. Há também "vsize-max contígua" (não medido em todas as plataformas, e não é mostrado neste exemplo), o que indica o maior pedaço único de disponível espaço de endereço virtual. Se esse número é baixo, é provável que as alocações de memória irá falhar devido à falta de espaço de endereço virtual muito em breve.
        
    Medições relacionados com gráficos diferentes ("gfx- *"). As medidas tomadas variam entre plataformas. Graphics é frequentemente uma fonte de alto uso da memória, e assim por estas medidas pode ser útil para detectar tais casos.

    Sistema

    Esta seção é mostrar apenas no Firefox OS. Ele contém as medições do dispositivo inteiro obtido a partir do sistema operativo. Entre outras coisas, esta seção é útil para entender exatamente como a memória de todo o dispositivo está sendo usado.

Etiquetas do documento e colaboradores

 Colaboradores desta página: Tiago188, gabrielol6, luanvidal
 Última atualização por: Tiago188,