{"id":91764,"date":"2022-09-27T08:35:35","date_gmt":"2022-09-27T06:35:35","guid":{"rendered":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/"},"modified":"2021-07-06T09:54:16","modified_gmt":"2021-07-06T07:54:16","slug":"supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory","status":"publish","type":"post","link":"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/","title":{"rendered":"\u00dcberwachen Sie die gesamte Speichernutzung Ihrer Webseite mit meterMemory ()"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Como-es-performancemeasureMemory-distinto-al-legado-performancememory-API\" >Como es performance.measureMemory() distinto al legado performance.memory API?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Casos-de-uso-sugeridos\" >Casos de uso sugeridos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Compatibilidad-del-navegador\" >Compatibilidad del navegador<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Estado-actual\" >Estado actual<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Usando-performancemeasureMemory\" >Usando performance.measureMemory()<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Habilitar-el-apoyo-durante-la-etapa-de-prueba-de-origen\" >Habilitar el apoyo durante la etapa de prueba de origen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Registrese-para-la-prueba-de-origen\" >Reg\u00edstrese para la prueba de origen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Habilitacion-a-traves-de-chrome-flags\" >Habilitaci\u00f3n a trav\u00e9s de chrome: \/\/ flags<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Deteccion-de-caracteristicas\" >Detecci\u00f3n de caracter\u00edsticas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Pruebas-locales\" >Pruebas locales<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Ejemplo\" >Ejemplo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Realimentacion\" >Realimentaci\u00f3n<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Cuentanos-sobre-el-diseno-de-la-API\" >Cu\u00e9ntanos sobre el dise\u00f1o de la API<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Informar-un-obstaculo-con-la-implementacion\" >Informar un obst\u00e1culo con la implementaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Mostrar-apoyo\" >Mostrar apoyo<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Links-Utiles\" >Links \u00datiles<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#Agradecimientos\" >Agradecimientos<\/a><\/li><\/ul><\/nav><\/div>\n<p><\/p>\n<div>\n<header class=\"w-article-header\">\n<p class=\"w-article-header__subhead w-mb--non\">\n<p>          Aprenda a medir el uso de memoria de su p\u00e1gina web en producci\u00f3n para detectar regresiones.<\/p>\n<p>\n          <time>13 abr 2020<\/time><\/p>\n<\/header>\n<p>Los navegadores gestionan la memoria de las p\u00e1ginas web de forma autom\u00e1tica.  Siempre y cuando una p\u00e1gina web crea un objeto, el navegador asigna una parte de la memoria \u00abdebajo del cap\u00f3\u00bb para guardar el objeto.  Ya que la memoria es un recurso finito, el navegador realiza una recolecci\u00f3n de basura para detectar cuando un objeto ya no hace falta y para liberar el bloque de memoria subyacente.  A pesar de todo, la detecci\u00f3n no es perfecta y<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Halting_problem\">fue probado<\/a> que la detecci\u00f3n perfecta es una tarea imposible.  Por ende, los navegadores aproximan la noci\u00f3n de \u00abun objeto hace falta\u00bb con la noci\u00f3n de \u00abun objeto es alcanzable\u00bb.  Si la p\u00e1gina web no puede llegar a un objeto a trav\u00e9s de sus variables y los campos de otros objetos accesibles, entonces el navegador puede recuperar el objeto de forma segura.  La diferencia entre estas dos nociones conduce a p\u00e9rdidas de memoria como se ilustra en el siguiente ejemplo.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const<\/span> object <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<\/span> a<span class=\"token operator\">:<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Array<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> b<span class=\"token operator\">:<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Array<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">2000<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token function\">setInterval<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span>object<span class=\"token punctuation\">.<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">1000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<p>Aqu\u00ed la matriz m\u00e1s grande <code>b<\/code> ya no hace falta, pero el navegador no lo recupera debido a que a\u00fan es alcanzable a trav\u00e9s de <code>object.b<\/code> en la devoluci\u00f3n de llamada.  Por ende, se filtra la memoria de la matriz m\u00e1s grande.<\/p>\n<p>Las fugas de memoria son <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/docs.google.com\/presentation\/d\/14uV5jrJ0aPs0Hd0Ehu3JPV8IBGc3U8gU6daLAqj6NrM\/edit#slide=id.p\">prevalente en la Web<\/a>.  Es f\u00e1cil introducir uno olvid\u00e1ndose de anular el registro de un detector de eventos, capturando accidentalmente objetos de un iframe, no cerrando un empleado, acumulando objetos en matrices, etc.  Si una p\u00e1gina web tiene p\u00e9rdidas de memoria, su uso de memoria aumenta con el tiempo y la p\u00e1gina web parece lenta e hinchada para los usuarios.<\/p>\n<p>El primer paso para solucionar este problema es medirlo.  El nuevo<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/github.com\/WICG\/performance-measure-memory\"><code>performance.measureMemory()<\/code>  API<\/a> posibilita a los desarrolladores medir el uso de memoria de sus p\u00e1ginas web en producci\u00f3n y as\u00ed detectar p\u00e9rdidas de memoria que se escapan a trav\u00e9s de pruebas locales.<\/p>\n<h2 id=\"legacy-api\"><span class=\"ez-toc-section\" id=\"Como-es-performancemeasureMemory-distinto-al-legado-performancememory-API\"><\/span>Como es <code>performance.measureMemory()<\/code> distinto al legado <code>performance.memory<\/code> API? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Si est\u00e1 familiarizado con el no est\u00e1ndar existente <code>performance.memory<\/code> API, es factible que se pregunte en qu\u00e9 se diferencia la nueva API.  La principal diferencia es que la API anterior devuelve el tama\u00f1o del mont\u00f3n de JavaScript, mientras que la nueva API estima el uso de memoria de toda la p\u00e1gina web.  Esta diferencia se torna importante cuando Chrome comparte el mismo mont\u00f3n con varias p\u00e1ginas web (o varias instancias de la misma p\u00e1gina web).  En tales casos, el resultado de la antigua API puede estar arbitrariamente apagado.  Ya que la antigua API se establece en t\u00e9rminos espec\u00edficos de implementaci\u00f3n como \u00abmont\u00f3n\u00bb, estandarizarla es in\u00fatil.<\/p>\n<p>Otra diferencia es que la nueva API realiza mediciones de memoria durante la recolecci\u00f3n de basura.  Esto reduce el ruido en los resultados, pero puede llevar un tiempo hasta que se produzcan los resultados.  Tenga en cuenta que otros navegadores pueden elegir poner en pr\u00e1ctica la nueva API sin depender de la recolecci\u00f3n de basura.<\/p>\n<h2 id=\"use-cases\"><span class=\"ez-toc-section\" id=\"Casos-de-uso-sugeridos\"><\/span>Casos de uso sugeridos <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El uso de memoria de una p\u00e1gina web depende del momento de los eventos, las acciones del usuario y las recolecciones de basura.  Es es por esto que que la API de medici\u00f3n de memoria est\u00e1 dise\u00f1ada para agregar datos de uso de memoria de producci\u00f3n.  Los resultados de las llamadas individuales son menos \u00fatiles.  Casos de uso de ejemplo:<\/p>\n<ul>\n<li>Detecci\u00f3n de regresi\u00f3n durante el lanzamiento de una versi\u00f3n nueva de la p\u00e1gina web para detectar nuevas fugas de memoria.<\/li>\n<li>Prueba A \/ B de una nueva funci\u00f3n para examinar su impacto en la memoria y detectar p\u00e9rdidas de memoria.<\/li>\n<li>Correlacionar el uso de la memoria con la duraci\u00f3n de la sesi\u00f3n para verificar la presencia o ausencia de p\u00e9rdidas de memoria.<\/li>\n<li>Correlacionar el uso de la memoria con las m\u00e9tricas del usuario para entender el impacto general del uso de la memoria.<\/li>\n<\/ul>\n<h2 id=\"compatibility\"><span class=\"ez-toc-section\" id=\"Compatibilidad-del-navegador\"><\/span>Compatibilidad del navegador <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En este momento, la API solo es compatible con Chrome 83 como prueba de origen.  El resultado de la API depende en gran medida de la implementaci\u00f3n debido a que los navegadores disponen diferentes formas de representar objetos en la memoria y diferentes formas de estimar el uso de la memoria.  Los navegadores pueden excluir algunas regiones de memoria de la contabilidad si la contabilidad adecuada es demasiado cara o inviable.  Por ende, los resultados no se pueden comparar entre navegadores.  Solo tiene sentido comparar los resultados para el mismo navegador.<\/p>\n<h2 id=\"status\"><span class=\"ez-toc-section\" id=\"Estado-actual\"><\/span>Estado actual <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"w-table-wrapper\">\n<table>\n<thead>\n<tr>\n<th>Paso<\/th>\n<th>Estado<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1. Crea un explicador<\/td>\n<td><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/github.com\/WICG\/performance-measure-memory\">Completar<\/a><\/td>\n<\/tr>\n<tr>\n<td>2. Crear borrador inicial de especificaci\u00f3n<\/td>\n<td>En progreso<\/td>\n<\/tr>\n<tr>\n<td>3. Recopile comentarios y repita el dise\u00f1o<\/td>\n<td>En progreso<\/td>\n<\/tr>\n<tr>\n<td>4. Prueba de origen <\/td>\n<td><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developers.chrome.com\/origintrials\/#\/view_trial\/1281274093986906113\">En progreso<\/a><\/td>\n<\/tr>\n<tr>\n<td>5. Lanzamiento<\/td>\n<td>No empezado<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2 id=\"using-performance.measurememory()\"><span class=\"ez-toc-section\" id=\"Usando-performancemeasureMemory\"><\/span>Usando <code>performance.measureMemory()<\/code> <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"enabling-support-during-the-origin-trial-phase\"><span class=\"ez-toc-section\" id=\"Habilitar-el-apoyo-durante-la-etapa-de-prueba-de-origen\"><\/span>Habilitar el apoyo durante la etapa de prueba de origen <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>los <code>performance.measureMemory()<\/code> La API se encuentra disponible como prueba de origen a partir de Chrome 83. Se espera que la prueba de origen finalice en Chrome 86 a principios de noviembre de 2020.<\/p>\n<p>Las pruebas de Origin le posibilitan probar nuevas funciones y otorgar comentarios sobre su usabilidad, practicidad y efectividad a la comunidad de est\u00e1ndares web.  Para conseguir m\u00e1s informaci\u00f3n, consulte el <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/github.com\/GoogleChrome\/OriginTrials\/blob\/gh-pages\/developer-guide.md\">Gu\u00eda de pruebas de Origin para desarrolladores web<\/a>.  Para inscribirse en esta u otra prueba de origen, visite el <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developers.chrome.com\/origintrials\/#\/trials\/active\">p\u00e1gina de registro<\/a>.<\/p>\n<h3 id=\"register-for-ot\"><span class=\"ez-toc-section\" id=\"Registrese-para-la-prueba-de-origen\"><\/span>Reg\u00edstrese para la prueba de origen <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developers.chrome.com\/origintrials\/#\/view_trial\/1281274093986906113\">Solicita un token<\/a> por tu origen.<\/li>\n<li>Agrega el token a tus p\u00e1ginas.  Hay dos maneras de hacerlo:\n<ul>\n<li>Agregar un <code>origin-trial<\/code> <code>&lt;meta&gt;<\/code>  etiqueta al encabezado de cada p\u00e1gina.  A modo de ejemplo, esto puede verse as\u00ed: <br \/><code>&lt;meta http-equiv=\"origin-trial\" content=\"TOKEN_GOES_HERE\"&gt;<\/code><\/li>\n<li>Si puede configurar su servidor, adem\u00e1s puede agregar el token utilizando un <code>Origin-Trial<\/code> Encabezado HTTP.  El encabezado de respuesta resultante deber\u00eda verse as\u00ed:<br \/><code>Origin-Trial: TOKEN_GOES_HERE<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"enabling-via-chrome:flags\"><span class=\"ez-toc-section\" id=\"Habilitacion-a-traves-de-chrome-flags\"><\/span>Habilitaci\u00f3n a trav\u00e9s de chrome: \/\/ flags <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Para experimentar con <code>performance.measureMemory()<\/code> sin un token de prueba de origen, habilite el <code>#experimental-web-platform-features<\/code> bandera en <code>chrome:\/\/flags<\/code>.<\/p>\n<h3 id=\"feature-detection\"><span class=\"ez-toc-section\" id=\"Deteccion-de-caracteristicas\"><\/span>Detecci\u00f3n de caracter\u00edsticas <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>los <code>performance.measureMemory()<\/code> la funci\u00f3n puede fallar con un<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/DOMException#exception-SecurityError\">Error de seguridad<\/a> si el entorno de ejecuci\u00f3n no alcanza con los requerimientos de seguridad para prevenir fugas de informaci\u00f3n de origen cruzado.  Durante la prueba de origen en Chrome, la API necesita que <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developers.google.com\/web\/updates\/2018\/07\/site-isolation\">Aislamiento del sitio<\/a> est\u00e1 habilitado.  Cuando se env\u00ede la API, depender\u00e1 de<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/WindowOrWorkerGlobalScope\/crossOriginIsolated\">aislamiento de origen cruzado<\/a>.  Una p\u00e1gina web puede elegir por el aislamiento de origen cruzado configurando <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/docs.google.com\/document\/d\/1zDlfvfTJ_9e8Jdc8ehuV4zMEu9ySMCiTGMS9y0GU92k\/edit\">Encabezados COOP + COEP<\/a>.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>performance<span class=\"token punctuation\">.<\/span>measureMemory<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">let<\/span> result<span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br>result <span class=\"token operator\">=<\/span> <span class=\"token keyword\">await<\/span> performance<span class=\"token punctuation\">.<\/span><span class=\"token function\">measureMemory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span>error<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>error <span class=\"token keyword\">instanceof<\/span> <span class=\"token class-name\">DOMException<\/span> <span class=\"token operator\">&amp;&amp;<\/span><br>error<span class=\"token punctuation\">.<\/span>name <span class=\"token operator\">===<\/span> <span class=\"token string\">\"SecurityError\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"The context is not secure.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">throw<\/span> error<span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><br><span class=\"token punctuation\">}<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span>result<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<h3 id=\"local-testing\"><span class=\"ez-toc-section\" id=\"Pruebas-locales\"><\/span>Pruebas locales <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Chrome realiza la medici\u00f3n de la memoria durante la recolecci\u00f3n de basura.  Esto significa que la API no resuelve la promesa de resultado de inmediato y, en cambio, espera la pr\u00f3xima recolecci\u00f3n de basura.  La API fuerza una recolecci\u00f3n de basura luego de un tiempo de espera, que en este momento est\u00e1 establecido en 20 segundos.  Iniciando Chrome con el<br \/>\n<code>--enable-blink-features='ForceEagerMeasureMemory'<\/code> El indicador de l\u00ednea de comandos reduce el tiempo de espera a cero y es \u00fatil para la depuraci\u00f3n y las pruebas locales.<\/p>\n<h2 id=\"example\"><span class=\"ez-toc-section\" id=\"Ejemplo\"><\/span>Ejemplo <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El uso recomendado de la API es establecer un monitor de memoria global que muestree el uso de memoria de toda la p\u00e1gina web y env\u00ede los resultados a un servidor para su agregaci\u00f3n y an\u00e1lisis.  La forma m\u00e1s sencilla es tomar muestras de forma peri\u00f3dica, a modo de ejemplo, cada <code>M<\/code> minutos.  A pesar de todo, esto introduce un sesgo en los datos debido a que pueden producirse picos de memoria entre las muestras.  El siguiente ejemplo muestra c\u00f3mo realizar mediciones de memoria insesgadas usando un <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Poisson_point_process\">Procedimiento de Poisson<\/a>, lo que garantiza que las muestras tengan la misma probabilidad de ocurrir en cualquier momento (<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/performance-measure-memory.glitch.me\/\">manifestaci\u00f3n<\/a>, <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/glitch.com\/edit\/#!\/performance-measure-memory?path=script.js:1:0\">fuente<\/a>).<\/p>\n<p>Primero, defina una funci\u00f3n que programe la pr\u00f3xima medici\u00f3n de memoria utilizando<br \/>\n<code>setTimeout()<\/code> con un intervalo aleatorio.  La funci\u00f3n debe llamarse luego de cargar la p\u00e1gina en la ventana principal.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function<\/span> <span class=\"token function\">scheduleMeasurement<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span>performance<span class=\"token punctuation\">.<\/span>measureMemory<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"performance.measureMemory() is not available.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><br><span class=\"token keyword\">const<\/span> interval <span class=\"token operator\">=<\/span> <span class=\"token function\">measurementInterval<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Scheduling memory measurement in \"<\/span> <span class=\"token operator\">+<\/span><br>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">round<\/span><span class=\"token punctuation\">(<\/span>interval <span class=\"token operator\">\/<\/span> <span class=\"token number\">1000<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token string\">\" seconds.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token function\">setTimeout<\/span><span class=\"token punctuation\">(<\/span>performMeasurement<span class=\"token punctuation\">,<\/span> interval<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><p><br>window<span class=\"token punctuation\">.<\/span><span class=\"token function-variable function\">onload<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">function<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token function\">scheduleMeasurement<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><\/p><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<p>los <code>measurementInterval()<\/code> La funci\u00f3n calcula un intervalo aleatorio en milisegundos de modo que, en promedio, hay una medici\u00f3n cada cinco minutos.  Ver <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Exponential_distribution#Computational_methods\">Distribuci\u00f3n exponencial<\/a> si est\u00e1 interesado en las matem\u00e1ticas detr\u00e1s de la funci\u00f3n.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">function<\/span> <span class=\"token function\">measurementInterval<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">const<\/span> <span class=\"token constant\">MEAN_INTERVAL_IN_MS<\/span> <span class=\"token operator\">=<\/span> <span class=\"token number\">5<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">60<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">1000<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">return<\/span> <span class=\"token operator\">-<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token constant\">MEAN_INTERVAL_IN_MS<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<p>En resumen, el async <code>performMeasurement()<\/code> La funci\u00f3n invoca la API, registra el resultado y programa la pr\u00f3xima medici\u00f3n.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">async<\/span> <span class=\"token keyword\">function<\/span> <span class=\"token function\">performMeasurement<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">let<\/span> result<span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br>result <span class=\"token operator\">=<\/span> <span class=\"token keyword\">await<\/span> performance<span class=\"token punctuation\">.<\/span><span class=\"token function\">measureMemory<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span>error<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>error <span class=\"token keyword\">instanceof<\/span> <span class=\"token class-name\">DOMException<\/span> <span class=\"token operator\">&amp;&amp;<\/span><br>error<span class=\"token punctuation\">.<\/span>name <span class=\"token operator\">===<\/span> <span class=\"token string\">\"SecurityError\"<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"The context is not secure.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><br><span class=\"token keyword\">throw<\/span> error<span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Memory usage:\"<\/span><span class=\"token punctuation\">,<\/span> result<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token function\">scheduleMeasurement<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<p>El resultado puede verse como sigue:<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-javascript\"><code class=\"language-javascript\"><br><span class=\"token punctuation\">{<\/span><br>bytes<span class=\"token operator\">:<\/span> <span class=\"token number\">60_000_000<\/span><span class=\"token punctuation\">,<\/span><br>breakdown<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><br><span class=\"token punctuation\">{<\/span><br>bytes<span class=\"token operator\">:<\/span> <span class=\"token number\">40_000_000<\/span><span class=\"token punctuation\">,<\/span><br>attribution<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">\"https:\/\/foo.com\"<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br>userAgentSpecificTypes<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">\"Window\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"JS\"<\/span><span class=\"token punctuation\">]<\/span><br><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br><span class=\"token punctuation\">{<\/span><br>bytes<span class=\"token operator\">:<\/span> <span class=\"token number\">20_000_000<\/span><span class=\"token punctuation\">,<\/span><br>attribution<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">\"https:\/\/foo.com\/iframe\"<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br>userAgentSpecificTypes<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">\"Window\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"JS\"<\/span><span class=\"token punctuation\">]<\/span><br><span class=\"token punctuation\">}<\/span><br><span class=\"token punctuation\">]<\/span><br><span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<p>La estimaci\u00f3n del uso total de memoria se devuelve en el <code>bytes<\/code> campo.  El valor de bytes est\u00e1 utilizando <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/v8.dev\/features\/numeric-separators\">sintaxis del separador num\u00e9rico<\/a>.  Este valor depende en gran medida de la implementaci\u00f3n y no se puede comparar entre navegadores.  Inclusive puede cambiar entre diferentes versiones del mismo navegador.  Durante la prueba de origen, el valor incluye el uso de memoria JavaScript de la ventana principal y todos<br \/>\n<strong>mismo sitio<\/strong> iframes y ventanas asociadas.  Cuando se env\u00eda la API, el valor tendr\u00e1 en cuenta JavaScript y la memoria DOM de todos los iframes, ventanas asociadas y empleados web.<\/p>\n<p>los <code>breakdown<\/code> El listado proporciona m\u00e1s informaci\u00f3n sobre la memoria utilizada.  Cada entrada describe una parte de la memoria y la atribuye a un recopilatorio de ventanas, iframes y empleados identificados por URL.  los <code>userAgentSpecificTypes<\/code><br \/>\nEl campo enumera los tipos de memoria espec\u00edficos de la implementaci\u00f3n asociados con la memoria.<\/p>\n<p>Es esencial tratar todas las listas de forma gen\u00e9rica y no codificar suposiciones sustentadas en un navegador en particular.  A modo de ejemplo, algunos navegadores pueden devolver un <code>breakdown<\/code> o un vacio <code>attribution<\/code>.  Otros navegadores pueden devolver varias URL en <code>attribution<\/code> lo que indica que no pudieron distinguir cu\u00e1l de estas URL es propietaria de la memoria.<\/p>\n<h2 id=\"feedback\"><span class=\"ez-toc-section\" id=\"Realimentacion\"><\/span>Realimentaci\u00f3n <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>los <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.w3.org\/community\/webperfs\/\">Grupo comunitario de rendimiento web<\/a> y al equipo de Chrome le encantar\u00eda conocer sus opiniones y experiencias con<br \/>\n<code>performance.measureMemory()<\/code>.<\/p>\n<h3 id=\"tell-us-about-the-api-design\"><span class=\"ez-toc-section\" id=\"Cuentanos-sobre-el-diseno-de-la-API\"><\/span>Cu\u00e9ntanos sobre el dise\u00f1o de la API <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u00bfPuede haber algo en la API que no funcione como se esperaba?  \u00bfO faltan propiedades que necesitas para poner en pr\u00e1ctica tu idea?  Presentar un obst\u00e1culo de especificaciones en el <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/github.com\/WICG\/performance-measure-memory\/issues\">performance.measureMemory Repositorio de GitHub<\/a> o agregue sus pensamientos a un obst\u00e1culo existente.<\/p>\n<h3 id=\"report-a-problem-with-the-implementation\"><span class=\"ez-toc-section\" id=\"Informar-un-obstaculo-con-la-implementacion\"><\/span>Informar un obst\u00e1culo con la implementaci\u00f3n <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u00bfEncontraste un error con la implementaci\u00f3n de Chrome?  \u00bfO la implementaci\u00f3n es distinto de la especificaci\u00f3n?  Presentar un error en <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/bugs.chromium.org\/p\/chromium\/issues\/entry?components=Blink%3EPerformanceAPIs\">new.crbug.com<\/a>.  Aseg\u00farese de incluir todos los detalles que pueda, proporcione instrucciones sencillas para reproducir el error y <strong>Componentes<\/strong> ajustado a <code>Blink&gt;PerformanceAPIs<\/code>.<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/glitch.com\/\">Falla<\/a> funciona muy bien para compartir repros r\u00e1pidos y f\u00e1ciles.<\/p>\n<h3 id=\"show-support\"><span class=\"ez-toc-section\" id=\"Mostrar-apoyo\"><\/span>Mostrar apoyo <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u00bfEst\u00e1 planeando utilizar <code>performance.measureMemory()<\/code>?  Su apoyo p\u00fablico ayuda al equipo de Chrome a priorizar funciones y muestra a otros proveedores de navegadores lo importante que es brindarles soporte.  Enviar un tweet a <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/twitter.com\/chromiumdev\">@Cromodev<\/a> y h\u00e1ganos saber d\u00f3nde y c\u00f3mo lo est\u00e1 utilizando.<\/p>\n<h2 id=\"helpful\"><span class=\"ez-toc-section\" id=\"Links-Utiles\"><\/span>Links \u00datiles <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h2 id=\"acknowledgements\"><span class=\"ez-toc-section\" id=\"Agradecimientos\"><\/span>Agradecimientos <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Muchas gracias a Domenic Denicola, Yoav Weiss, Mathias Bynens por las revisiones de dise\u00f1o de API y a Dominik Inf\u00fchr, Hannes Payer, Kentaro Hara, Michael Lippautz por las revisiones de c\u00f3digo en Chrome.  Adem\u00e1s agradezco a Per Parker, Philipp Weis, Olga Belomestnykh, Matthew Bolohan y Neil Mckay por otorgar valiosos comentarios de los usuarios que mejoraron enormemente la API.<\/p>\n<p><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/unsplash.com\/photos\/5tLfQGURzHM\">Imagen de h\u00e9roe<\/a> por Harrison Broadbent en <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/unsplash.com\">Unsplash<\/a><\/p>\n<p>    <web-feedback additional-questions=\"api\"><\/web-feedback>\n  <\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Erfahren Sie, wie Sie die Speichernutzung Ihrer Webseite in der Produktion messen, um Regressionen zu erkennen. 13.04.2020 Browser verwalten den Speicher von Webseiten auf eine Weise\u2026<\/p>","protected":false},"author":1,"featured_media":91765,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1356],"tags":[],"class_list":["post-91764","post","type-post","status-publish","format-standard","has-post-thumbnail","category-dev"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Supervise el uso total de memoria de su p\u00e1gina web con meterMemory () - R Marketing Digital<\/title>\n<meta name=\"description\" content=\"Aprenda a medir el uso de memoria de su p\u00e1gina web en producci\u00f3n para detectar regresiones. 13 abr 2020 Los navegadores gestionan la memoria de las\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Supervise el uso total de memoria de su p\u00e1gina web con meterMemory ()\" \/>\n<meta property=\"og:description\" content=\"Aprenda a medir el uso de memoria de su p\u00e1gina web en producci\u00f3n para detectar regresiones. 13 abr 2020 Los navegadores gestionan la memoria de las\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/\" \/>\n<meta property=\"og:site_name\" content=\"R Marketing Digital\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-27T06:35:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/09\/hero-3353012.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"R Marketing Digital\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/\"},\"author\":{\"name\":\"R Marketing Digital\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"headline\":\"Supervise el uso total de memoria de su p\u00e1gina web con meterMemory ()\",\"datePublished\":\"2022-09-27T06:35:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/\"},\"wordCount\":1873,\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/hero-3353012.jpg\",\"articleSection\":[\"Dev\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/\",\"name\":\"Supervise el uso total de memoria de su p\u00e1gina web con meterMemory () - R Marketing Digital\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/hero-3353012.jpg\",\"datePublished\":\"2022-09-27T06:35:35+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"description\":\"Aprenda a medir el uso de memoria de su p\u00e1gina web en producci\u00f3n para detectar regresiones. 13 abr 2020 Los navegadores gestionan la memoria de las\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/hero-3353012.jpg\",\"contentUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/hero-3353012.jpg\",\"width\":1200,\"height\":675,\"caption\":\"hero-3353012-6712851-jpg\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/\",\"name\":\"R Marketing Digital\",\"description\":\"Agencia SEO | Publicidad redes sociales | Community Management\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rmarketingdigital.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\",\"name\":\"R Marketing Digital\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"caption\":\"R Marketing Digital\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Supervise el uso total de memoria de su p\u00e1gina web con meterMemory () - R Marketing Digital","description":"Erfahren Sie, wie Sie die Speichernutzung Ihrer Webseite in der Produktion messen, um Regressionen zu erkennen. 13. April 2020 Browser verwalten das Ged\u00e4chtnis von","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/","og_locale":"de_DE","og_type":"article","og_title":"Supervise el uso total de memoria de su p\u00e1gina web con meterMemory ()","og_description":"Aprenda a medir el uso de memoria de su p\u00e1gina web en producci\u00f3n para detectar regresiones. 13 abr 2020 Los navegadores gestionan la memoria de las","og_url":"https:\/\/rmarketingdigital.com\/de\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/","og_site_name":"R Marketing Digital","article_published_time":"2022-09-27T06:35:35+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/09\/hero-3353012.jpg","type":"image\/jpeg"}],"author":"R Marketing Digital","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#article","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/"},"author":{"name":"R Marketing Digital","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"headline":"Supervise el uso total de memoria de su p\u00e1gina web con meterMemory ()","datePublished":"2022-09-27T06:35:35+00:00","mainEntityOfPage":{"@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/"},"wordCount":1873,"image":{"@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/09\/hero-3353012.jpg","articleSection":["Dev"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/","url":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/","name":"Supervise el uso total de memoria de su p\u00e1gina web con meterMemory () - R Marketing Digital","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#primaryimage"},"image":{"@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/09\/hero-3353012.jpg","datePublished":"2022-09-27T06:35:35+00:00","author":{"@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"description":"Erfahren Sie, wie Sie die Speichernutzung Ihrer Webseite in der Produktion messen, um Regressionen zu erkennen. 13. April 2020 Browser verwalten das Ged\u00e4chtnis von","inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/rmarketingdigital.com\/dev\/supervise-el-uso-total-de-memoria-de-su-pagina-web-con-metermemory\/#primaryimage","url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/09\/hero-3353012.jpg","contentUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/09\/hero-3353012.jpg","width":1200,"height":675,"caption":"hero-3353012-6712851-jpg"},{"@type":"WebSite","@id":"https:\/\/rmarketingdigital.com\/#website","url":"https:\/\/rmarketingdigital.com\/","name":"R Digitales Marketing","description":"SEO Agentur | Werbung f\u00fcr soziale Netzwerke | Community Management","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rmarketingdigital.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e","name":"R Digitales Marketing","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","caption":"R Marketing Digital"}}]}},"_links":{"self":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts\/91764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/comments?post=91764"}],"version-history":[{"count":0,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/posts\/91764\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/media\/91765"}],"wp:attachment":[{"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/media?parent=91764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/categories?post=91764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/de\/wp-json\/wp\/v2\/tags?post=91764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}