Ist ints immer schneller als Zahlen / Gleitkommazahlen in AS3?

8

Es ist bekannt, dass Flash sich auf sehr unberechenbare Weise verhält, wenn es um die Manipulation von Daten geht. Ich bin gespannt, ob es einen Leistungs / Speichervorteil für die Verwendung von Numbers anstelle von Ints gibt, abgesehen von Werten, die Genauigkeit erfordern. Ich habe gehört, dass einige Grundoperationen in Flash möglicherweise mehrere Male zwischen den beiden Typen konvertieren, um den Ausdruck aufzulösen. Ich habe auch gehört, dass die Flash-Laufzeit unter der Haube tatsächlich während der Laufzeit Ints auf Nicht-Präzisions-Zahlen / -Floats abbildet. Ist das alles wahr?

    
Jonathan Dunlap 01.03.2012, 22:29
quelle

2 Antworten

14

Flash-Laufzeit ist in der Tat ein dunkler Ort.

  • Wie Sie bereits erwähnt haben AVM2 konvertiert Big Ints in Number .
  • Ganze Zahlen sind eigentlich Intarsien.
  • Und es gibt mehr Sachen über Ints .
  • Früher wurden die Benutzungen langsam in einer Schleife verwendet ABER JETZT SIND SIE NICHT (die Ergebnisse in dem Artikel scheinen eine Kombination von zu sein seltsame Bytecode-Generierung und JIT-Optimierungen).
  • Zahlen nehmen mehr Speicherplatz in Anspruch, aber das ist nothing im Vergleich zu einer einzelnen JPEG-Datei.
  • Logischerweise ist es besser, uints in Schleifen zu verwenden.
  • Zahlen sind Gleitkommafalsche, die Sie sorgfältig vergleichen müssen.

Jackson Dunstan macht ziemlich gute Tests verschiedener AS3 Sprachkonstrukte. Natürlich ist es immer gut, die Ergebnisse selbst zu überprüfen. Aus der Serie über 10.2 Performance sieht man, dass sie mit jeder neuen Flash Player-Version etwas optimieren, aber andere Dinge könnten langsamer werden: 1 < a href="http://jacksondunstan.com/articles/1079"> 2 3 .

P.S. Diese Antwort könnte sehr bald alt werden und könnte auch in ein paar Jahren später zitiert werden, was natürlich falsch ist.

    
Valentin Simonov 01.03.2012, 23:45
quelle
0

Sie erhalten keinen echten Leistungsvorteil mit int über Number. Wenn Sie also keine Variable für Dinge wie Schleifenindizes oder Dinge verwenden, die genaue Inkremente benötigen, ist Number in Ordnung. In der Tat kann eine Zahl NaN sein, wenn Sie ein ungültiges Ergebnis erhalten, was ein netter Vorteil ist.

    
Almo 01.03.2012 22:40
quelle

Tags und Links