{"componentChunkName":"component---src-templates-blog-js","path":"/blog/2018/09/10/introducing-the-react-profiler.html","result":{"data":{"markdownRemark":{"html":"<p>React 16.5 adiciona suporte para o novo plugin de profile do DevTools.\nEste plugin usa a <a href=\"https://github.com/reactjs/rfcs/pull/51\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">API experimental de profile</a> do React para coletar informações temporais sobre cada componente que é renderizado a fim de identificar gargálos de desempenho em aplicações React.\nEle será completamente compatível com nossas futuras funcionalidades de <a href=\"/blog/2018/03/01/sneak-peek-beyond-react-16.html\">time slicing e suspense</a>.</p>\n<p>Este blog post cobre os seguintes tópicos:</p>\n<ul>\n<li><a href=\"#profiling-an-application\">Analisando uma aplicação</a></li>\n<li>\n<p><a href=\"#reading-performance-data\">Lendo dados de desempenho</a></p>\n<ul>\n<li><a href=\"#browsing-commits\">Navegando por commits</a></li>\n<li><a href=\"#filtering-commits\">Filtrando commits</a></li>\n<li><a href=\"#flame-chart\">Gráfico de chama</a></li>\n<li><a href=\"#ranked-chart\">Gráfico de classificação</a></li>\n<li><a href=\"#component-chart\">Gráfico de componente</a></li>\n<li><a href=\"#interactions\">Interações</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"#troubleshooting\">Guia de soluções de problemas</a></p>\n<ul>\n<li><a href=\"#no-profiling-data-has-been-recorded-for-the-selected-root\">Nenhum dado de profile foi salvo para a raiz selecionada</a></li>\n<li><a href=\"#no-timing-data-to-display-for-the-selected-commit\">Nenhum dado de tempo a ser exibido para o commit selecionado</a></li>\n</ul>\n</li>\n<li><a href=\"#deep-dive-video\">Vídeo aprofundado</a></li>\n</ul>\n<h2 id=\"profiling-an-application\"><a href=\"#profiling-an-application\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Analisando uma aplicação </h2>\n<p>DevTools irá exibir uma aba chamada “Profiler” para aplicações que suportem a nova API de profiling:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4da6b55fc3c98de04c261cd902c14dc3/ad997/devtools-profiler-tab.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAAB60lEQVQoz62RzW7TQBSFI8Srsekz1BJs2LDkLVjUKGSRxJay6AsgRJtCwwKJqiGNY4fSFhAqUdImkf/GcezxZHw9l5lpQXSBxIIjfTrjY+mTf2qDPXvr7XH34bA/2nbcsTEcjY0TxzMc95Px4ahvvN5/Y3QPDo2Xr/aMo+OB3r2xxPM0rutuSx45jvOgpvLty/l3uiaYXX7FTZYgcIqiLDSVPJcsQ9hkuquSyi1Hmq+RMaYpigJV5vO5q4W94dX5e2+F3YFfHowi6I1jeHeawKFHNL1xcof9YQRnPwgwmgOlFKSLK2GSJB+l7n5ttogvAp/hbBbA9TIRkzkT0yUVYVqKKKtEtIY7hJKsAIHid5QUCSEDLczW6YUa4utFFUwnOJkQvJqGSIIM+YYj54AbXsm+oSxBdonSqF/1D+GJFsZkpYWrZVKlYSyCgIo4osL3C7GKE5FEiTwzEYaFhIo0zgVnXIi/PWGepWdqSBeEp0EEflBAFDIIJSuyBimFwKdACINYkqUMoAQl+QW/Ffa18PNlOFFDSSvcyG+c5yj/ooQiMtmixH9KFEWnWrj12Hz67HnrhW1bO82WZbbbbbPVusFqt0zLkm3ZZlteq3uKZrNp1ut1s9FoKHZs2250Op0nWnibe/+B2u7ubu0n/Rxb5mrVIIgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Nova aba \"profiler\" do DevTools\"\n        title=\"\"\n        src=\"/static/4da6b55fc3c98de04c261cd902c14dc3/1e088/devtools-profiler-tab.png\"\n        srcset=\"/static/4da6b55fc3c98de04c261cd902c14dc3/65ed1/devtools-profiler-tab.png 210w,\n/static/4da6b55fc3c98de04c261cd902c14dc3/d10fb/devtools-profiler-tab.png 420w,\n/static/4da6b55fc3c98de04c261cd902c14dc3/1e088/devtools-profiler-tab.png 840w,\n/static/4da6b55fc3c98de04c261cd902c14dc3/ad997/devtools-profiler-tab.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<blockquote>\n<p>Nota:</p>\n<p><code class=\"gatsby-code-text\">react-dom</code> 16.5+ suporta análise no modo DEV.\nUm pacote de produção para análise está disponível como <code class=\"gatsby-code-text\">react-dom/profiling</code>.\nLeia mais sobre como usar este bundle em <a href=\"https://fb.me/react-profiling\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">fb.me/react-profiling</a> </p>\n</blockquote>\n<p>O painel de “Profiler” estará vazio inicialmente. Clique no botão de gravar para iniciar a análise:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bae8d10e17f06eeb8c512c91c0153cff/ad997/start-profiling.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABdUlEQVQoz62QvU7DMBCAI8SrsfAMjQQzI+9RBthpq0ody9ABMTC0C0lKwo8KDEjt0GZomthJmx8S1+bukkbAiHrSp7OTu89na4+318f347sTe2w3DNPQDaPENE19OBzq/f6NPhgMIPf10WhE3+k/YBkPumPbDcdxTi3LOtIwPiYvnyxkaj53VRAEv/B9Xy2XS7VarZTnIR59Z4xBZsr1AsXDSGFMp1OHhLOn57cszZTP10Ucx+IvSZIQaZqK9XotNpuNkFKK7XYrCkSIHIVwuAG6Q40HwTsdoSQWSlwQ1fpngISoa0oEdnPOTRJGUURCrMdcFAUBI5RZCFX9rzMCYpWXtVQAz2CRMAzDWgjNEvaSeZ5ki4WEUyVcs55qNyWu8zyXcH2Jz1EJzZ1wUgnzLMtEAm+VcC5i1xVfsI+hAZqxqX47zNVVkbwSPpAQJpipPQQM9krCdrt93u12LzudThO4+AdN6L9qtVpnJKziYA9ovV5P+wavR2c66XZI3gAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Clique \"gravar\" para iniciar a análise\"\n        title=\"\"\n        src=\"/static/bae8d10e17f06eeb8c512c91c0153cff/1e088/start-profiling.png\"\n        srcset=\"/static/bae8d10e17f06eeb8c512c91c0153cff/65ed1/start-profiling.png 210w,\n/static/bae8d10e17f06eeb8c512c91c0153cff/d10fb/start-profiling.png 420w,\n/static/bae8d10e17f06eeb8c512c91c0153cff/1e088/start-profiling.png 840w,\n/static/bae8d10e17f06eeb8c512c91c0153cff/ad997/start-profiling.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>Uma vez que você começou a gravar, DevTools irá coletar automativamente informações de desempenho cada vez que sua aplicação renderizar.\nUse sua aplicação como você normalente faria.\nQuando você finalizar a análise, clique no botão de “Parar”.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/45619de03bed468869f7a0878f220586/ad997/stop-profiling.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABcklEQVQoz62QS2vCQBCAQ+lf66W/wUB77rH/Qw/tuSQieLSHQMFDD3oxiSQHUfsCC1UP5rGJeTRuNrvd2SRiH/TkwMdkM7PfDiNZD3fnj+P+hTW2Grqhy7peYhiGPBgM5F7vXtY0jeeePBwOxX9R55j6SLYtq2Hb9qVpmmcSxNN08oZCxJbLNfN9/xue57HNZsNc12WOAzjiP0KIZ8TWjs+CcMsgFouFLYQfL6+zLNsxD0V5kiQkTRMCuSZN0z1wzrKM0KIgBScHCMEg5I/rXHcqhQjNxROMEnoQRUH/DC6i0HwAgdtBEBilcLsVQuitMiuo6GF8DPYzoC56eA3nOcvzXDTzNZilMAz3QpgAPlcrl2r9Z/qZJLQs/Z4QY0zjOKawikpo1MJpJcQcKJI03pHZ3CF8DELLVeyB3dV9FbgSjoQwiqJ3doTgg02EUFXV606nc9Nut5ucVo2iqK3D8z80+f1bRVGuhLCKkyMgdbtd6Qtm52eikNUIKgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Clique \"parar\" quando você finalizar a análise\"\n        title=\"\"\n        src=\"/static/45619de03bed468869f7a0878f220586/1e088/stop-profiling.png\"\n        srcset=\"/static/45619de03bed468869f7a0878f220586/65ed1/stop-profiling.png 210w,\n/static/45619de03bed468869f7a0878f220586/d10fb/stop-profiling.png 420w,\n/static/45619de03bed468869f7a0878f220586/1e088/stop-profiling.png 840w,\n/static/45619de03bed468869f7a0878f220586/ad997/stop-profiling.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>Assumindo que sua aplicação renderizou pelo menos uma vez enquanto a análise acontecia, DevTools irá mostrar diversas formas para ver os dados de desempenho.\nIremos <a href=\"#reading-performance-data\">olhar cada uma destas formas abaixo</a>.</p>\n<h2 id=\"reading-performance-data\"><a href=\"#reading-performance-data\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Lendo dados de desempenho </h2>\n<h3 id=\"browsing-commits\"><a href=\"#browsing-commits\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Navegando por commits </h3>\n<p>Conceitualmente, React funciona em duas fases:</p>\n<ul>\n<li>A fase de <strong>render</strong> determina quais mudanças precisam ser feitas no DOM, por exemplo. Durante esta fase, React executa <code class=\"gatsby-code-text\">render</code> e então compara o resultado com o render anterior.</li>\n<li>A fase de <strong>commit</strong> aplica todas as mudanças. (No caso do React DOM, é quando o React insere, atualiza e remove nós do DOM.) O React também executa os métodos do ciclo de vida como <code class=\"gatsby-code-text\">componentDidMount</code> e <code class=\"gatsby-code-text\">componentDidUpdate</code> durante esta fase.</li>\n</ul>\n<p>O profiler do DevTools agrupa a informação de desempenho por commit.\nCommits são exibidos em um gráfico de barra próximo ao topo do profiler:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bd72dec045515d59be51c944e902d263/d8f62/commit-selector.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 601px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 10%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAIAAADXZGvcAAAACXBIWXMAAAsSAAALEgHS3X78AAAAaklEQVQI103Kuw5AQBBAUf//LxqlQhQSjWqFQoIN2RkzY58iUVI63U1uBgDLqpFknLRBSSmFEOLPl4HZI95yRsSL6LHuZop0ZAfCuPnNsLWe5XTOfnP6MftOSnHfyzLXRT60pZ41qMp3zQsu+2w/rwWfxgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Gráfico de barras dos commits analisados\"\n        title=\"\"\n        src=\"/static/bd72dec045515d59be51c944e902d263/d8f62/commit-selector.png\"\n        srcset=\"/static/bd72dec045515d59be51c944e902d263/65ed1/commit-selector.png 210w,\n/static/bd72dec045515d59be51c944e902d263/d10fb/commit-selector.png 420w,\n/static/bd72dec045515d59be51c944e902d263/d8f62/commit-selector.png 601w\"\n        sizes=\"(max-width: 601px) 100vw, 601px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>Cada barra no gráfico representa um único commit com o commit atualmente selecionado pintado de preto.\nVocê pode clicar numa barra (ou nas setas para esquerda/direita) para selecionar um commit diferente.</p>\n<p>A cor e a altura de cada barra corresponde ao tempo que aquele commit demorou para renderizar.\n(Barras amarelas altas demoraram mais do que as barras azuis menores.)</p>\n<h3 id=\"filtering-commits\"><a href=\"#filtering-commits\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Filtrando commits </h3>\n<p>O quanto mais você executar o profile, mais vezes a sua aplicação irá renderizar.\nEm alguns casos você vai acabar com <em>commits demais</em> para analisar facilmente.\nO profiler oferece um mecanismo de filtro para ajudar nestes casos.\nUse-o para especificar um limit e o profiler irá esconder todos os commits que foram mais <em>rápidos</em> que aquele valor.</p>\n<p><img src=\"/683b9d860ef722e1505e5e629df7ef7e/filtering-commits.gif\" alt=\"Filtrando commits por tempo\"></p>\n<h3 id=\"flame-chart\"><a href=\"#flame-chart\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Gráfico de chama </h3>\n<p>A visualização de gráfico de chama (flame chart) representa o estado da sua aplicação para um commit particular.\nCada barra no gráfico representa um componente React (por exemplo <code class=\"gatsby-code-text\">App</code>, <code class=\"gatsby-code-text\">Nav</code>).\nO tamanho e cor da barra representa quanto tempo o componente e seus filhos demoraram para renderizar.\n(A largura da barra representa quanto tempo foi gasto <em>quando o componente foi renderizado pela última vez</em> e a cor representa quanto tempo foi gasto <em>como parte do commit atual</em>.)</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/3046f500b9bfc052bde8b7b3b3cfc243/ad997/flame-chart.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAAB30lEQVQoz62Rz08TURDHG+O/xsW/gZeIN6M3L548kTSQiFHUgx5oS9PIqQkhgaIpEovYbep2d1vaQgndSpV2f++2XWRnZ3y7LejZ8E2+eW/mzXzevN1EZevdvaKwfV/6Xpuv1UQWWRRFJksSE4Qy2y0U2F6xyHZ3CqwiVJmi1Jksy6yuKHGNJEnzPF7gPXOJSMftZsccTejXQCdvNCLf92NPJhNyXIdc1yXDMkk3dZ5zyfMcnvfIdhzyxmMeexRJVVUxBrbaJ0dD3SVdMwJDN8EyLG4TTO7hQAOeB7V3Bu2zDvwY9MHqdeGnUIGLahV8bQgBwFUE1DStzHF3E5/yyaaw+ZSOS0k4+rKIjVISGwfPsbG3iKeHy9j6uoQdeR3HZh/9y4CvJqp1Bd3zcwwsCzkLIqBt20IMXN1aaz7cWKZn2+/DtdIH2hA/0mE1T0tvH9Cb9ceU//yKbN+ha0EY0u8guIkRMQZallWJgQenJ82dwQWVhkbYG1+iz2vkfhdf7m/ifquMmqNHU2CIfzXl3OgaOJ1w5HqN2WX8W/BDXgBIANOnwHSoEKLGyP/uZ76aAb/FQP6XunQLchxHiYHpdPpJNptdzWQyK9wv/sMrvP91KpV6FANnunMLTuRyucQfU2RSA7PakTgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Examplo de gráfico de chama\"\n        title=\"\"\n        src=\"/static/3046f500b9bfc052bde8b7b3b3cfc243/1e088/flame-chart.png\"\n        srcset=\"/static/3046f500b9bfc052bde8b7b3b3cfc243/65ed1/flame-chart.png 210w,\n/static/3046f500b9bfc052bde8b7b3b3cfc243/d10fb/flame-chart.png 420w,\n/static/3046f500b9bfc052bde8b7b3b3cfc243/1e088/flame-chart.png 840w,\n/static/3046f500b9bfc052bde8b7b3b3cfc243/ad997/flame-chart.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<blockquote>\n<p>Nota:</p>\n<p>A largura da barra indica quanto tempo demorou para renderizar o componente (e seus filhos) na última vez que foi renderizado.\nSe o componente não re-renderizou como parte do último commit, o tempo representa uma renderização anterior.\nO quanto maior for um componente, mais demorado é para ele renderizar.</p>\n<p>A cor da barra indica quanto tempo o componente (e seus filhos) demoraram para renderizar no commit selecionado.\nComponentes amarelos levaram mais tempo, componentes azuis levaram menos tempo e componentes cinza não renderizaram durante este commit.</p>\n</blockquote>\n<p>Por exemplo, o commit acima levou um total de 18.4ms para renderizar.\nO componente <code class=\"gatsby-code-text\">Router</code> foi o “mais caro” para renderizar (levando 18.4ms).\nA maior parte deste tempo foi devido a seus filhos, <code class=\"gatsby-code-text\">Nav</code> (8.4ms) e <code class=\"gatsby-code-text\">Route</code> (7.9ms).\nO resto do tempo se dividiu entre seus filhos remanescentes ou gasto no método de render do próprio componente.</p>\n<p>Você pode aumentar ou diminuir o zoom no gráfico de chama clicando nos componentes:\n<img src=\"/39ba82394205242af7c37ccb3a631f4d/zoom-in-and-out.gif\" alt=\"Clique em um componente para aumentar ou diminuir o zoom\"></p>\n<p>Clicar num componente irá selecioná-lo e mostrar, no painel lateral direito, informações que incluem suas <code class=\"gatsby-code-text\">props</code> e <code class=\"gatsby-code-text\">estado</code> no momento deste commit.\nVocê pode analisar e aprender mais sobre como o componente realmente renderizou durante o commit:</p>\n<p><img src=\"/1f4d023f1a0f281386625f28df87c78f/props-and-state.gif\" alt=\"Visualizando as props e estado de um componente em um commit\"></p>\n<p>Em alguns casos, selecionar um componente e alternar entre commits pode dar uma dica do <em>porquê</em> o componente renderizou:</p>\n<p><img src=\"/cc2a8b37bbce52c49a11c2f8e55dccbc/see-which-props-changed.gif\" alt=\"Visualizando quais valores mudaram entre commits\"></p>\n<p>A imagem acima mostra que <code class=\"gatsby-code-text\">state.scrollOffset</code> mudou entre os commits.\nFoi isto que provavelmente causou que o componente <code class=\"gatsby-code-text\">List</code> renderizasse novamente.</p>\n<h3 id=\"ranked-chart\"><a href=\"#ranked-chart\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Gráfico de classificação </h3>\n<p>A visualização de gráfico de classificação (ranked chart) representa um único commit.\nCada barra no gráfico representa um componente React (por exemplo <code class=\"gatsby-code-text\">App</code>, <code class=\"gatsby-code-text\">Nav</code>).\nO gráfico é ordenado de tal forma que o componente que demorou mais para renderizar fica no topo.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0c81347535e28c9cdef0e94fab887b89/ad997/ranked-chart.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABlUlEQVQoz62OT2/TMBiHI7SvxoXPMEtwhhvckPYBECqHIY6s6r/BdpjaXmARNzSta6WQpGuF1o5kW7e1YYmj1HHiuH6xvYpNOwBC+0mPbL2v9fxsdFrvHpn7zceHVnfV/tZFtnWNa/dQr/MVmbufkWl+QeanNuod7CHXsZHjuqjf7yPHcZBt26vyfGJZ1kND5Xg0HpEcwLskkKQcSAa/wXMOEY4hTa4giCgkdAFzQiGOMUQRhiRJNCq+71taOOhtD04HHwCPWwU7aXF22ubFEuo1eXb8kQuvxmf9TU7HW3wefOeTixmfTac8yzJeFAVTwiAIOlK3Yrwovx4+a7yClJxzYKEQWSAg/3kDuxIiDwUUob6nSSg8zxdRFAkpE9LFlRBjfKCFL3fqw72Jr2YLtf0TKly+IoQApRQYYyCE0EJZ0NXCtWZ9eEawFsqIf8ntnlvC6x/aP44Oc7FQM6aWf0OW3p2xpXBfC/OUenAPiePY1cL3GxvPq9XqeqVSKUne/AelWq32tlwuP9XCZR7cA0aj0TB+AdiMX66/MIlxAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Exemplo de gráfico de classificação\"\n        title=\"\"\n        src=\"/static/0c81347535e28c9cdef0e94fab887b89/1e088/ranked-chart.png\"\n        srcset=\"/static/0c81347535e28c9cdef0e94fab887b89/65ed1/ranked-chart.png 210w,\n/static/0c81347535e28c9cdef0e94fab887b89/d10fb/ranked-chart.png 420w,\n/static/0c81347535e28c9cdef0e94fab887b89/1e088/ranked-chart.png 840w,\n/static/0c81347535e28c9cdef0e94fab887b89/ad997/ranked-chart.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<blockquote>\n<p>Nota:</p>\n<p>O tempo de renderização de um componente inclui o tempo gasto para renderizar seus filhos,\nportanto, os componentes que demoram mais para renderizar estão geralmente próximos ao topo da árvore.</p>\n</blockquote>\n<p>Assim como no gráfico de chama, você pode aumentar ou diminuir o zoom de um gráfico de classificação ao clicar nos componentes.</p>\n<h3 id=\"component-chart\"><a href=\"#component-chart\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Gráfico de componente </h3>\n<p>Algumas vezes é útil visualizar quantas vezes um componente específico renderizou enquanto você estava analisando.\nO gráfico de componente fornece esta informação no formato de um gráfico de barras.\nCada barra no gráfico representa uma vez que o componente renderizou.\nA cor e a altura de cada barra corresponde a quanto tempo o componente demorou para renderizar <em>relativamente a outros componentes</em> num commit específico.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/d71275b42c6109e222fbb0932a0c8c09/ad997/component-chart.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAACSElEQVQoz62P20tUURTGh+gf6a33CHwTukCIQQ9JNw8kEZHRU2+9BzaCJ1LLB43xOPiaMjIgBl1Gzcuc0RnL0RQdTUWdOefsc3Wcs85ardlq9Af0wcf69tqL3147tjCeaPqiTzzM5xZbs9mscuJ5RWdPTU4qqVRKSafTyujIqJLJZBRd15WzuRzP5PP51kKh0JbL5a7H6lpZXloXrk27e/tkWhaZpkkWV0vYMpfLZVkNwyTTsEgIIV2f3auYZDsO1bW5WVqQwFJpa9lzHTosV0LX88D3ffC52lYFhLCAYbC/UwTXWOW8DfwY9wV4POP6Ac97NeGF9KO4Psu48zHnmIq00Ue1lV5AIqw7NJcwmH4sM0CEYRgihEfsABmEDMVqlc9RiCyob1gxjDkJrGwXipR/QrTWHdGZTJ0w00xQtfmAFNW8v1cRvxIeHpBrGVS2KuR6rgTaQsxLoFgdKdJCG1Vnn0bHYh0lwVlBmGjAo68tyE0Mph5hsPweg60xDJ0SVrd30d7ZQd8PMAKQQN76ZEN7bewnLbYTpC/Wqp+uwdGvBMBBBnDiMkSfGiCYeQ74uRFg/BKEqQsAvz9CzToGr7wPYSRhtVPgjAS6G+Ml2npJ9P0q0XwT0TTXmZtE2WaiuRucr5z09VucG4mcb0Q+f4S//K9s216SwMG+jhfJN+3dgx0tXVq8VR3qfKAOxe+o2ut77Luq1qmoWpxz/L6qddxWtb5Xav/bd2p/b4/6YWBAHdS0rmQy2ZNIJJ5J4KnO/QfHhoeHY38AsLpA6BTZFEwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Exemplo de gráfico de componente\"\n        title=\"\"\n        src=\"/static/d71275b42c6109e222fbb0932a0c8c09/1e088/component-chart.png\"\n        srcset=\"/static/d71275b42c6109e222fbb0932a0c8c09/65ed1/component-chart.png 210w,\n/static/d71275b42c6109e222fbb0932a0c8c09/d10fb/component-chart.png 420w,\n/static/d71275b42c6109e222fbb0932a0c8c09/1e088/component-chart.png 840w,\n/static/d71275b42c6109e222fbb0932a0c8c09/ad997/component-chart.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>O gráfico acima mostra que o componente <code class=\"gatsby-code-text\">List</code> renderizou 11 vezes.\nEle também mostra que cada vez que ele renderizou, foi o componente mais “caro” no commit (significando que foi o mais demorado).</p>\n<p>Para visualizar este gráfico, você deve clicar duas vezes num componente <em>ou</em> selecionar um componente e clicar no ícone com um gráfico de barras azul no painel de detalhe a direita.\nVocê pode retornar ao gráfico anterior clicando no botão “x” no painel de detalhe a direita.\nVocê também pode clicar duas vezes numa barra específica para visualizar mais informações sobre aquele commit.</p>\n<p><img src=\"/99cb4321ded8eb0c21ae5fc673878563/see-all-commits-for-a-fiber.gif\" alt=\"Como visualizar todas as renderizações de um componente específico\"></p>\n<p>Se o componente selecionado não renderizou durante uma sessão de análise, a seguinte mensagem irá ser exibida:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/8eb0c37a13353ef5d9e61ae8fc040705/ad997/no-render-times-for-selected-component.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABZ0lEQVQoz62PzU7CQBDHG+OrefEZaKJnj74HHvQBCiHckQMx8eABE5VSUlDwQEI9oId+7PaD2rTLjrND26BHwz/5dbc7M/+Z0SZ3xumDdX9mT+yGaZp6xXg81ofDod7v9/XBYKD3erf4/0jvVY5ljnTbthvT6fTcsqwTTel9PlvyiMN6/QUBYxAEDBjbEQQBuK4Lvu+D53kE55xQuZ8egzCKQGm1ciZk6Dgf8zT9BtcPizhOxGazqUFTEUWRyPO8Bs2IJElETHlJzpMCXhfLZ7Q71jC4oBYghfrsU6m6qxMbSZxYZllWRreqTm3xQoZhGJLhFlUUBSiEEDXV286P8gAnpRjsOtEFBxv9MsSkLa4hFbiqZJxJjMk4jultX382IEOsqSd8KzvleAicQKRpSuBaKplQhQoVr+4leWn4RIY4gQMHEA42I8NWq3XZ6XSu2+12E7n6B02svzEM44IMSx0dAK3b7Wo/FtRnZY5UiRMAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Nenhuma renderização para o componente selecionado\"\n        title=\"\"\n        src=\"/static/8eb0c37a13353ef5d9e61ae8fc040705/1e088/no-render-times-for-selected-component.png\"\n        srcset=\"/static/8eb0c37a13353ef5d9e61ae8fc040705/65ed1/no-render-times-for-selected-component.png 210w,\n/static/8eb0c37a13353ef5d9e61ae8fc040705/d10fb/no-render-times-for-selected-component.png 420w,\n/static/8eb0c37a13353ef5d9e61ae8fc040705/1e088/no-render-times-for-selected-component.png 840w,\n/static/8eb0c37a13353ef5d9e61ae8fc040705/ad997/no-render-times-for-selected-component.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h3 id=\"interactions\"><a href=\"#interactions\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Interações </h3>\n<p>React recentemente adicionou outra <a href=\"https://fb.me/react-interaction-tracing\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">API experimental</a> para rastrear a <em>causa</em> de uma atualização.\n“Interações” rastreadas com esta API irão ser mostradas no profiler:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/a91a39ac076b71aa7a202aaf46f8bd5a/ad997/interactions.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABl0lEQVQoz62RzW7aQBDHraqvlkufIZaSc499j/TQPgAgxD1wQJFy6IFKSQyOgBAUKVFJJKAW9trOrm28O97J7ILpoT1VGemn9Xz9Z0Z2bi8an36MLk/G/vh4OBy6NaPRyB0MBm6v13P7/b7bPe+S/9PGPc+zNf7Qcyfj8fFkMjn1ff/IMfYwv3tMeIrL1RrjOEZG1C9jDDebDYZheCBJEkzT1ObXYYzJ6ysaWywWt1bw19PTPY8TXP2OVMA45FkGWY0QIASHoiggJwT5JAo0BMIogpAxE5Naa1wul9ck99F5mU7nIgiwoMIKkXKVNkZDNchSy0zossh1JaWNZ9tCr4JAx4zpPM9MCMyGdNWNFXyezeZpFCEPgkpVgGVZopTygFIKt0LYb07nizRGUW6RtseSYmS1oGcF4/V6jqaxKCoFoEEpDeYljK+sX+182pLut9vX/LVhyvkMd1m5n/Zvdo1AdSSvQf9B7gWvrCDnfIHvYPTnp1aw2Wx+abfb31qt1hnx9T84o/7vjUbjsxXc24d3wOl0Os4blShlbz/d1/8AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"O painel de interações\"\n        title=\"\"\n        src=\"/static/a91a39ac076b71aa7a202aaf46f8bd5a/1e088/interactions.png\"\n        srcset=\"/static/a91a39ac076b71aa7a202aaf46f8bd5a/65ed1/interactions.png 210w,\n/static/a91a39ac076b71aa7a202aaf46f8bd5a/d10fb/interactions.png 420w,\n/static/a91a39ac076b71aa7a202aaf46f8bd5a/1e088/interactions.png 840w,\n/static/a91a39ac076b71aa7a202aaf46f8bd5a/ad997/interactions.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>A imagem acima mostra uma sessão de análise que registrou quatro interações.\nCada linha representa uma interação que foi rastreada.\nOs pontos coloridos através da linha representam commits relacionados àquela interação.</p>\n<p>Você também pode ver quais interações foram rastreadas para um commit específico a partir das visualizações de gráfico de chama e de gráfico de classificação:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/9847e78f930cb7cf2b0f9682853a5dbc/ad997/interactions-for-commit.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABuUlEQVQoz62Ry27aQBSGraqv1k2fISO16y77Humi3XUDCPECva3SICULLkkxYGKCsAmCFMYm2OBbYo7P6ZmBpllX+aVftmfO+fzPGaP97fPr0/aPN91f5pFpmkK50+mIbrcrms2GODn5Kc7PzsTXL99Fq9UW/X5f27Is0ev1VN0RP99yzytDaTS0x3dRSkt5R3GcUJZlj47jmDzPo9lsxt8xpWmq1zabDQVBQFEUaStNp9OOBlr29dV8uSYp5U56Hvi+r71arYBhwIUwHF6DlDNe8yAIQ/i9WIDHNdnDA+x2u1wBuafJuJdGvV637asBua4L4/EYlR3HRWswRNdx0HUnOJ/Pcb0OEAAwiSO8GY1wLSXmSYLMAgUMw7ClgXx2m+dBk8mk4DS8saEsjeiycUoXF5fkOA7luQ6hVdzfU3J7S9liQbnvExaFBvII2hrI87GTJFGzKbIs5X1CKlJMfROXS4k8N5UCH8Xv9MSsv8B9wu12Ozj8XMUAVcBdgPujwL+1vQtOhE+NmB+ADQ3kW7qhZxDffF8Dy+Xy+2q1+rFSqRyzP/yHj7n/U6lUeqeBB714Bhu1Ws34A880Xu+Ar3OjAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Lista de interações de um commi\"\n        title=\"\"\n        src=\"/static/9847e78f930cb7cf2b0f9682853a5dbc/1e088/interactions-for-commit.png\"\n        srcset=\"/static/9847e78f930cb7cf2b0f9682853a5dbc/65ed1/interactions-for-commit.png 210w,\n/static/9847e78f930cb7cf2b0f9682853a5dbc/d10fb/interactions-for-commit.png 420w,\n/static/9847e78f930cb7cf2b0f9682853a5dbc/1e088/interactions-for-commit.png 840w,\n/static/9847e78f930cb7cf2b0f9682853a5dbc/ad997/interactions-for-commit.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>Você pode navigar através de interações e commits clicando neles:</p>\n<p><img src=\"/7c66e7686b5242473c87b3d0b4576cf3/navigate-between-interactions-and-commits.gif\" alt=\"Navegue através de interações e commits\"></p>\n<p>A API de rastreamento ainda é novo e iremos abordar ela com mais detalhes em posts futuros.</p>\n<h2 id=\"troubleshooting\"><a href=\"#troubleshooting\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Guia de soluções de problemas </h2>\n<h3 id=\"no-profiling-data-has-been-recorded-for-the-selected-root\"><a href=\"#no-profiling-data-has-been-recorded-for-the-selected-root\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Nenhum dado de profile foi salvo para a raiz selecionada </h3>\n<p>Se sua aplicação possui múltiplas “raizes”, você talvez veja a seguinte mensagem após a análise:\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0755492a211f5bbb775285c0ff2fdfda/ad997/no-profiler-data-multi-root.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABjUlEQVQoz62Qy07CQBRAG+OvufEbmETXLv0PWOgH8GhY2wVCAjEuxbZUNEpMTCCB0kDoY0pfdKYz3hkeC40LE25yeqfzOHPnKtaDev74+ngxtIYlwzCQQNd11Ol0ULvdRpqmoftWC/V6PaTdaajb7SLTNOW+gaGjoWWVXoz+pTkwzxQRnwP9Cy8cbttz7vk+9zyP+5BXq5VkuVwexovFgruuywOxD3BcnwdBwHme8PFkbEnhZDT6yPyAu35Ioiimcbwl2ZMkh7xer2kURZQxRouioIQKaM4h4KI+6E6VIAxHfBsUYH8BHwYSyY81cU5U+iyFIcZSWGRZQaB8gvEvKMAJkbdCdRIQwxQRSCG0SZdCGEhhinERzGbMt20WAHg+Z6HjMG86ZWKeJAmD5x0qBBGD1rA0TffCbYXw9ndxU5KmebrZ0Ah6leW5RPzHcCDJMgrrsrciRA93TxXkO+GTFEKTJ/wIgTF+k8JarXbdaDRuIJfr9XoFckXkf1BWVfW2Wq1eSeEuTo6A0mw2lW+bPmTlyk2LHgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Nenhum dado foi salvo para a raiz selecionada\"\n        title=\"\"\n        src=\"/static/0755492a211f5bbb775285c0ff2fdfda/1e088/no-profiler-data-multi-root.png\"\n        srcset=\"/static/0755492a211f5bbb775285c0ff2fdfda/65ed1/no-profiler-data-multi-root.png 210w,\n/static/0755492a211f5bbb775285c0ff2fdfda/d10fb/no-profiler-data-multi-root.png 420w,\n/static/0755492a211f5bbb775285c0ff2fdfda/1e088/no-profiler-data-multi-root.png 840w,\n/static/0755492a211f5bbb775285c0ff2fdfda/ad997/no-profiler-data-multi-root.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>Esta mensagem indica que nenhum dado de dessempenho foi gravado para a raiz que está selecionada no painel de “Elementos”.\nNeste caso, tente selecionar uma raiz diferente no painel para visualizar informações analisadas para aquela raiz:</p>\n<p><img src=\"/bdc30593d414b5c8d2ae92027ed11940/select-a-root-to-view-profiling-data.gif\" alt=\"Selecione uma raiz no painel de &#x22;Elements&#x22; para visualizar seus dados de desempenho\"></p>\n<h3 id=\"no-timing-data-to-display-for-the-selected-commit\"><a href=\"#no-timing-data-to-display-for-the-selected-commit\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Nenhum dado de tempo a ser exibido para o commit selecionado </h3>\n<p>Às vezes, um commit pode ser tão rápido que <code class=\"gatsby-code-text\">perfomance.now()</code> não retorna nenhuma informação de tempo significativa para o DevTools.\nNeste caso, a seguinte mensagem irá aparecer:</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/63b2fb6298feecb179272c467020ed95/ad997/no-timing-data-for-commit.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 47.61904761904761%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsSAAALEgHS3X78AAABe0lEQVQoz61QTUvDQBAN4l/z4m9oQM8e/R/1oFehLaU/QSwWexK0CYQkrQURNGAxkKRJNh/tJpNdZzdJqSdB+uAxs7Ozb96Oot/dnj7q47OFaXZMy1RNs6Zt26quzdSHyVSdTJ/U8f1Y1TRd1i3LUufzuYzY28F4bhjGiSLwtrTfw4Twjy+PJ4TwLMt2jCLCw+Cbp4HD1+EaaylPkoTHcYx3kcwFBRzHMaSg7/uvDAtxRsuCUiiKAsqyhBLjZrMFmsdAExfCyAcoKaRpCqvVClzXxfuN6C2EoOd5Lyh3rBBClrwGINlfzPOcoRuGLllVVax5JxzPfgniFytsrr+bZ1zkguiIp/it7XZbTwXglFLegjEmBcMw1KRgEARLLHIUrkhCGJ4ZrmFHbGS4J0kc1rpie2gFa4doddFMLpCA0+Vu0J2MYqcoAi1ELkT2WDSCz1IQJ3/yAwB3akvBfr9/ORwOrweDQRd59Q928f1Nr9e7kIINjg5AZTQaKT+0smf7vT5VvwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Nenhum dado de tempo a ser exibido para o commit selecionado\"\n        title=\"\"\n        src=\"/static/63b2fb6298feecb179272c467020ed95/1e088/no-timing-data-for-commit.png\"\n        srcset=\"/static/63b2fb6298feecb179272c467020ed95/65ed1/no-timing-data-for-commit.png 210w,\n/static/63b2fb6298feecb179272c467020ed95/d10fb/no-timing-data-for-commit.png 420w,\n/static/63b2fb6298feecb179272c467020ed95/1e088/no-timing-data-for-commit.png 840w,\n/static/63b2fb6298feecb179272c467020ed95/ad997/no-timing-data-for-commit.png 1012w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h2 id=\"deep-dive-video\"><a href=\"#deep-dive-video\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Vídeo aprofundado </h2>\n<p>O vídeo a seguir demonstra como o React profiler pode ser usado para detectar e melhorar gargálos de performance numa aplicação React real.</p>\n<br>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; \" > <iframe src=\"https://www.youtube-nocookie.com/embed/nySib7ipZdk?rel=0\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div>","excerpt":"React 16.5 adiciona suporte para o novo plugin de profile do DevTools.\nEste plugin usa a API experimental de profile do React para coletar informações temporais sobre cada componente que é renderizado a fim de identificar gargálos de desempenho em aplicações React.\nEle será completamente compatível com nossas futuras funcionalidades de time slicing e suspense. Este blog post cobre os seguintes tópicos: Analisando uma aplicação Lendo dados de desempenho Navegando por commits Filtrando commits…","frontmatter":{"title":"Introduzindo o React Profiler","next":null,"prev":null,"author":[{"frontmatter":{"name":"Brian Vaughn","url":"https://github.com/bvaughn"}}]},"fields":{"date":"10 de setembro de 2018","path":"content/blog/2018-09-10-introducing-the-react-profiler.md","slug":"/blog/2018/09/10/introducing-the-react-profiler.html"}},"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"title":"React v17.0"},"fields":{"slug":"/blog/2020/10/20/react-v17.html"}}},{"node":{"frontmatter":{"title":"Apresentando o novo JSX Transform"},"fields":{"slug":"/blog/2020/09/22/introducing-the-new-jsx-transform.html"}}},{"node":{"frontmatter":{"title":"React v17.0 Candidato à lançamento: Sem novas funcionalidades"},"fields":{"slug":"/blog/2020/08/10/react-v17-rc.html"}}},{"node":{"frontmatter":{"title":"React v16.13.0"},"fields":{"slug":"/blog/2020/02/26/react-v16.13.0.html"}}},{"node":{"frontmatter":{"title":"Construindo Ótimas Experiências de Usuário com Modo Concorrente e Suspense"},"fields":{"slug":"/blog/2019/11/06/building-great-user-experiences-with-concurrent-mode-and-suspense.html"}}},{"node":{"frontmatter":{"title":"Preparando para o Futuro com as Prereleases React"},"fields":{"slug":"/blog/2019/10/22/react-release-channels.html"}}},{"node":{"frontmatter":{"title":"Apresentando o novo React DevTools"},"fields":{"slug":"/blog/2019/08/15/new-react-devtools.html"}}},{"node":{"frontmatter":{"title":"React v16.9.0 e a atualização do Roadmap"},"fields":{"slug":"/blog/2019/08/08/react-v16.9.0.html"}}},{"node":{"frontmatter":{"title":"O React já esta traduzido? ¡Sí! Sim! はい！"},"fields":{"slug":"/blog/2019/02/23/is-react-translated-yet.html"}}},{"node":{"frontmatter":{"title":"React v16.8: O React com Hooks"},"fields":{"slug":"/blog/2019/02/06/react-v16.8.0.html"}}}]}},"pageContext":{"slug":"/blog/2018/09/10/introducing-the-react-profiler.html"}},"staticQueryHashes":[]}