Pude comprobar si las transiciones CSS o animaciones estaban desencadenando nuevos cálculos en mi página. Solía jQuery para hacer esto, pero se puede usar lo que quiera:
$('*').css('transition', 'none');
$('*').css('animation', 'none');
Esto desactiva eficazmente las transiciones y animaciones en cada elemento de la página. Los ejecuté uno a la vez, y luego volví a rastrear mis perfiles. En mi caso, las animaciones fueron las culpables.
.css('animation')
volverá algo así como
"myCustomAnimation 15s linear 0s infinite normal none running"
o si no hay animación,
"none 0s ease 0s 1 normal none running"
Así que después de actualizar (para volver a activar las animaciones), el siguiente fragmento de registros cada elemento que tiene una animación definido:
$('*').each(function(){
if($(this).css('animation').split(' ')[0] != 'none'){ //you could also check for infinite here if you want
console.log(this);
}
});
Al deshabilitar animat iones sobre cada uno de ellos individualmente, pude determinar cuál causaba mis problemas.
Esa fue una demostración bastante útil, pero también hay entradas de "Recalcular estilo" que no muestran un seguimiento de pila y no parecen estar asociadas a ningún código. Cuando hay muchos elementos, obtengo esa entrada cada vez que hago clic, pero no he podido rastrear por qué necesita volver a calcular. – redbmk
Obtengo esto originado por GC menor. Así que supongo que buena suerte para resolverlo. –