Ich erstellte zwei Arrays, um X- und Y-Werte für Punkte, die ich zeichnen möchte, zu halten. Während ich das tat, erinnerte ich mich an die PV-Sektoren, von denen ich kürzlich erfahren hatte, und stattdessen eine einzige Reihe von PV-Sektoren anstelle der beiden, die ich ursprünglich hatte. Welche Methode ist effizienter und führt bei einer großen Menge von x- und y-Werten zu weniger Browserverzögerung?Effizienz von PV-Sektoren im Vergleich zu zwei separaten Variablen in Processing.js
Antwort
Warum versuchst du beides nicht und findest es heraus? Erstellen Sie ein Array von 1.000 PVectors
, und vergleichen Sie das mit dem Erstellen von Arrays mit 1000 float
Werten. Erhöhe diese auf 10.000 oder 100.000 oder 1.000.000.
Zeigen Sie die Variable frameRate
jeweils auf dem Bildschirm an. (Verwenden Sie nicht println()
, es ist viel zu langsam - verwenden Sie stattdessen die text()
Funktion!) Wann bemerken Sie, dass es zu fallen beginnt?
Das könnte so aussehen, als würde ich Ihre Frage mit einer Frage beantworten, aber der beste Weg, Fragen zur Leistung zu beantworten, ist, es einfach selbst zu testen, Benchmarking und Profilerstellung durchzuführen und zu entscheiden, was in Ihrem spezifischen Kontext am besten ist.
Aber ich würde bezweifeln, dass Sie in beiden Fällen einen großen Unterschied bemerken werden. Die Geschwindigkeit ist wahrscheinlich identisch. Der einzige Unterschied, den Sie bemerken könnten, ist, dass die Verwendung von PVector
wahrscheinlich ein wenig mehr Speicher benötigt. Aber wieder, wahrscheinlich nicht genug, um sich wirklich darum zu kümmern.
Anstatt sich über diese Art von Optimierung Gedanken zu machen (was eine vorzeitige Optimierung oder eine Mikrooptimierung ist), sollten Sie nur den Ansatz verwenden, der für Sie am sinnvollsten ist. Code Lesbarkeit und Wartbarkeit sind wichtiger als kleine Dinge wie diese, so verwenden Sie einfach das, was in Ihrem Programm logischer erscheint.
- 1. Fabric.js Effizienz von Clipped Sprite im Vergleich zu Einzelbildern
- 2. Zuweisen von zwei Bereichen von separaten Blättern zu einer Variablen
- 3. req.locals im Vergleich zu res.locals im Vergleich zu res.data im Vergleich zu req.data im Vergleich zu app.locals in Express-Middleware
- 4. Implementierung globaler Variablen im Vergleich zu den dereferenzierten Variablen
- 5. Effizienz von Bitwise XOR in C++ im Vergleich zu besser lesbaren Methoden
- 6. Capture-Ergebnis von ImageMagick im Vergleich zu einer Variablen
- 7. Leistung von jQuery-Selektoren im Vergleich zu lokalen Variablen
- 8. Unterschied zwischen $! im Vergleich zu einer Variablen mit Rettungs
- 9. Komplexität von MongoDB-Abfragen - Sortierung im Vergleich zu zwei Abfragen
- 10. Ausdrücke im Vergleich zu Variablen in Excel VBA
- 11. Shiny in R: Reaktive Werte im Vergleich zu globalen Variablen
- 12. Regex-Effizienz bei der Verwendung von Alternierungen im Vergleich zu einzelnen Regexen
- 13. Binäre Serialisierung im Vergleich zu JSON im Vergleich zu xml
- 14. C# 'var' Schlüsselwort im Vergleich zu explizit definierten Variablen
- 15. Einstellung Annahmen auf Variablen in Sympy im Vergleich zu anderen Variablen
- 16. Vergleich von zwei Bildern
- 17. Null/Objekt und Null/Null Vergleich Effizienz
- 18. ASP.NET-WebApi-Sitzung im Vergleich zu statischen Variablen
- 19. String-Konstante im Vergleich zur Variablen
- 20. ES6-Module im Vergleich zu HTML-Importen
- 21. Hat jemand processing.js im IE arbeiten?
- 22. Wie zwei Variablen im 12-Stunden-Format zu vergleichen
- 23. C++ zwei TBB :: parallel_for Effizienz
- 24. In Ruby im Vergleich zu Smalltalk blockieren
- 25. time.time im Vergleich zu timeit.timeit
- 26. Batch-Datei mehrere Ergebnisse zu separaten Variablen
- 27. processing.js loadImage()
- 28. Effizienz der Liste <T> .IndexOf() im Vergleich zu Liste <T> .FindIndex()
- 29. Processing.js HashMap
- 30. Processing.js Timer
Ich folgte Ihrem Rat und erstellte ein solches Programm. Was ich fand, war, dass, wenn ich die Anzahl der x- und y-Werte nicht beschränkte, meine Bildrate nach drei Minuten in beiden Fällen von 60 auf unter dreißig fiel. Das PVector-Array war nach drei Minuten etwa drei Frames schneller. Hier wird es interessant. Mit einer Grenze von 200 auferlegt, stagnierten beide Methoden und blieben mehr oder weniger bei 60 Bildern pro Sekunde. Als ich jedoch ein Limit von 2000 auferlegte, zog das PVector-Array die Bildrate nach drei Minuten auf 40 Bilder pro Sekunde, während die beiden Arrays nicht ins Stocken gerieten und bei 60 blieben. –
Wie auch immer, vielen Dank! –
@EmmaCooper Ich wäre gespannt auf deinen Code. Warum wird Ihre Verzögerung im Laufe der Zeit schlimmer? –