Questa domanda è simile nello spirito a questa altra domanda, ha chiesto due anni fa: Why does Raphael's framerate slow down on this code?Raphael: Graduale rallentamento animazione con semplice animazione infinita
sto usando Raphael 2.1.0 in cromo 25 nel seguente modo:
<html>
<head>
<title>Drawfun</title>
<style>
* {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<script src="raphael.js"></script>
<script>
var paper = Raphael(10, 50, 320, 200);
var anim = Raphael.animation({transform: "R360"}, 500).repeat(Infinity);
var rect = paper.rect(50, 40, 10, 20);
rect.attr("fill", "#f00");
rect.attr("stroke", "#fff");
rect.animate(anim);
</script>
</body>
</html>
Inizialmente, il rettangolo gira senza problemi, come ci si aspetterebbe. Dopo un minuto o due, la rotazione è in esecuzione a ~ 15 FPS. Dopo cinque o otto minuti, l'animazione è in esecuzione a ~ 5 FPS.
I profili CPU di Chrome indicano che, man mano che l'animazione diventa più irregolare, lo script trascorre sempre meno tempo in (program)
e più e più volte in repush
e eve.listeners
.
Il Task Manager di Chrome non indica una perdita di memoria, nel pool di memoria JS o in Chrome, ma rivela che la pagina consuma sempre più CPU nel tempo.
Quando si esegue quella pagina in una versione recente di Firefox, l'animazione diventa molto più veloce, molto più rapidamente. Questi risultati sono stati verificati su Linux e Windows, quindi non è un problema del sistema operativo :).
Qualcuno ha qualche idea di ciò che potrebbe essere sbagliato nel mio codice o negli interni di Raphael?
Dopo aver eseguito il codice in jsfiddle per 10 minuti utilizzando Chrome versione 25.0.1364.97 m, non sono stato in grado di notare la riduzione del frame rate, come sono stai misurando il frame rate? Puoi provare questo - http://jsfiddle.net/MEQRr/ – Neil
l'ho visto girare sulla macchina di Kenneth, la riduzione del frame rate era drammatica, per niente sottile. Dopo dieci minuti sembrava approssimativamente 2 fotogrammi al secondo. –
Dopo aver lasciato il tuo jsfiddle per un po 'ho sicuramente sperimentato un grande degrado nel framerate.Lo abbiamo testato su Chrome su Mac, Windows, Linux e Firefox su Linux. È stato presente in tutti i browser che abbiamo testato. Chrome 26.0.1410.12 dev. Sospetto che il degrado sarà meno pronunciato se la scheda è una scheda di sfondo e non una in primo piano. –