2016-07-18 6 views
1

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

1

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.

+0

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. –

+0

Wie auch immer, vielen Dank! –

+0

@EmmaCooper Ich wäre gespannt auf deinen Code. Warum wird Ihre Verzögerung im Laufe der Zeit schlimmer? –

Verwandte Themen