exadogg: Optimierung: lieber Rechnen oder Speichern?

Beitrag lesen

Hi Selfler!!

Angenommen ich habe eine Javascript Klasse. Nun muss ich für viele Instanzen dieser Klasse, alle 40 Millisekunden eine bestimmte Größe berechnen. Beispielsweise hat die Instanz die Attribute A1 und A2 und es muss folgendes berechnet werden:

pow( (A1 + A2), 2) - A1

Ich gehe mal davon aus, dass diese pow() die Potenz von einer Zahl berechnet, in diesem Fall wohl das Quadrat der Summe von A1 und A2. Nun weiß ich ja nicht, wie die Funktion Math.pow() von JavaScript intern gestrickt ist.

Aber wenn Du den Term (A1 + A2) ^ 2 mittels einer der binomischen Formeln erweiterst, kommst Du auf A1 * A1 + 2 * A1 * A2 + A2 * A2, was IMHO mit weniger Aufwand als die Math.pow() zu berechnen ist. Ich hoffe, Dir damit geholfen zu haben.

Da sich die Werte A1 und A2 sehr sehr selten ändern, ist zu überlegen, ob ich nicht den entsprechenden ausgerechneten Wert in einer weiteren Variable speichere. Nun stellt sich mir die Frage, wieviel RAM so eine Variable inkl. Overhead in Javascript verbraucht und ob sich das lohnt. Immerhin haben die meisten PCs heutzutage schon 1GB RAM und fast alle mindestens 512MB RAM.

PS: Falls ihr eine gute Möglichkeit kennt, um die Performance eines Javascripts zu messen (vermutlich braucht man ja sehr viele Durchläufe), bitte teilt sie mir mit.

Ich bin zur Zeit dabei, das Aptana Studio für Eclipse zu testen, und ich meine, dass es dort die Möglichkeit gibt, die Performance eines JavaScripts zu messen. Falls Du mal selbst nachschauen willst: Eclipse gibt es unter http://www.eclipse.org/ und das Aptana Studio dafür unter http://72.3.219.182/studio/download

PPS: Es kann ruhig ein großer Teil des restlichen Arbeitsspeichers benutzt werden. Das ganze ist für ein Spiel, weswegen es nicht schlimm ist, wenn der Arbeitsspeicher auch entsprechend gebraucht wird.