Ich arbeite gerade an einem kleinen Leinwandspiel, das von Grund auf in reinem Javascript geschrieben wurde.Warum wird in Chrome eine bessere Leistung erzielt, wenn die Entwicklerkonsole aktiv ist?
Das Spiel beinhaltet eine 2D-Beleuchtung Algorithmus similar to this one, aber mit einer Lichtquelle und 25 Polygone, die für etwa 30.000 Berechnungen pro Frame macht.
Meine Bildrate ist groß in Safari, meh in Chrome und unspielbar in Firefox. Wenn die Chrome-Entwicklerkonsole jedoch während des Spiels aktiviert ist, entspricht die Bildrate der Safari.
Was könnte der Grund dafür sein?
Nachdem die Kommentare der Fenstergröße vorgeschlagen könnte die Framerate werden beeinflusst, fand ich heraus, dass je kleiner das Fenster, desto glatter das Spiel läuft, aber nur in Chrom. Der Betrag, der auf dem Bildschirm gezeichnet wird oder Berechnungen, die vom Spiel verwendet werden, hängen nicht von der Bildschirmgröße ab.
ich messe die Framerate Unterschied rein Auge, und Sie können den Effekt in diesem Gifs sehen:
Bad, große Fenster:
Gut, kleines Fenster:
Das Spiel läuft im Browser viel glatter als in diesen Gifs ersichtlich ist, aber der Effekt ist immer noch spürbar.
Ich kann den gleichen Effekt mit dem ersten Beispiel in dem Link, den ich gepostet habe, erhalten. Ist es nur ich oder hat jemand den gleichen Effekt?
Noch seltsamer ... Ich habe den gleichen Effekt auf mehreren anderen Websites, wie Facebook, wenn ich den Home-Feed scrollen. Je größer das Fenster, desto choppiger wird das Scrollen. Ist das eine Chrome-spezifische Sache, erhält jemand ähnliche Ergebnisse?
Sehr cool, aber Ihre Frage ist ein wenig Licht auf Details. Wie messen Sie die Bildrate? Wie groß ist der Unterschied zwischen der Bildrate mit und ohne Dev Tools? Können Sie Ihren wirklichen Anwendungsfall zeigen? Siehst du das gleiche Verhalten in der Quelle, mit der du verlinkt hast? und so weiter ... – apaul
Wenn Sie die Konsole vergrößern oder das auf dem Bildschirm gezeichnete Bild ausschneiden, haben Sie den Aufwand für die einzelnen Bilder verringert. – enhzflep
@enhzflep es stellt sich heraus, Fenstergröße wirkt sich auf die Bildrate (in Chrom), obwohl die Menge der Dinge auf dem Bildschirm gezeichnet ändert sich nicht. Außerdem können Sie den gleichen Effekt in dem Link erzielen, den ich in Chrome gepostet habe. Ich habe Screenshots zu meiner Frage hinzugefügt. – tborenst