Ich habe ein Javascript, das viele Berechnungen durchführt und die Ergebnisse in Form von vielen Arrays auf Google Charts-Objekten aufträgt. Ohne die Seite neu zu laden, kann ich neue Werte anwenden und die Analyse immer wieder ausführen und die Ergebnisse jedes Mal grafisch darstellen. Das Seltsame ist, dass dies in Chrome gut funktioniert, aber in Safari unter MacOS wird es mit jeder neuen Analyse langsamer und erfordert ein erneutes Laden der Seite, um es wieder auf den neuesten Stand zu bringen. Auf Chrome-Desktop- und Mobilgeräten sowie in Safari Mobile läuft es jedoch auf Hochtouren und erfordert kein erneutes Laden. Ich vermute, dass Safari macOS etwas zwischenspeichert und Speicher füllt. Ich verwende eine Reihe von Graph-Objekten (Code unten), die jedes Mal erstellt werden (aber vermutlich auch Müll gesammelt).Warum verlangsamt sich mein JavaScript im Safari-Desktop, aber nicht in Chrome oder Safari?
var chart01 = new google.visualization.LineChart(document.getElementById('chart_01'));
var chart02 = new google.visualization.LineChart(document.getElementById('chart_02'));
var chart03 = new google.visualization.LineChart(document.getElementById('chart_03'));
var chart04 = new google.visualization.LineChart(document.getElementById('chart_04'));
var chart05 = new google.visualization.LineChart(document.getElementById('chart_05'));
var chart06 = new google.visualization.LineChart(document.getElementById('chart_06'));
var chart07 = new google.visualization.LineChart(document.getElementById('chart_07'));
var chart08 = new google.visualization.LineChart(document.getElementById('chart_08'));
var chart09 = new google.visualization.LineChart(document.getElementById('chart_09'));
var chart10 = new google.visualization.LineChart(document.getElementById('chart_10'));
var chart11 = new google.visualization.LineChart(document.getElementById('chart_11'));
var chart12 = new google.visualization.LineChart(document.getElementById('chart_12'));
var chart13 = new google.visualization.LineChart(document.getElementById('chart_13'));
var chart14 = new google.visualization.LineChart(document.getElementById('chart_14'));
var chart15 = new google.visualization.LineChart(document.getElementById('chart_15'));
Versuchen Sie, den Speicherprofiler zu verwenden, um zu sehen, ob das passiert. – Barmar