Archiv

Artikel Tagged ‘performance tests’

Performance Tests

Jeder Entwickler kennt es: Die gerade in der Entwicklung befindliche Anwendung wird regelmäßig mit unit Tests befeuert, um die korrekte Funktionalität zu gewährleisten. Hat man nun keinen build server zur Hand, der diese Aktionen automatisch durchführt, so testet der Entwickler eben selbst.

Leider ist während der Tests die Maschine komplett geblockt, besonders wenn es sich um rechenintensive Algorithmen handelt. Da diese Test mit steigender Anzahl zum echten Hindernis avancieren, ging ich der Sache mal auf den Grund. Warum dauert das hier alles so lange? Ich entwickle auf einem MacBook mit DualCore2 bei 2 GHz und 1GB RAM. Ja ich weiß, der RAM ist äußerst dürftig. Auch hier könnte ein Upgrade deutliche Linderung schaffen.

Zur Zeit entwickle ich eine Anwendung zur Sprachverarbeitung, welche mit Hilfe verschiedener mathematischer Algorithmen bestimmte Sprachmerkmale in Audiodateien erkennen und verarbeiten kann. Meine Entwicklungsumgebung ist Eclipse. Der build und test erfolgt automatisch mit ant.

Das ausführen einer Testsuite dauert bei der Verarbeitung eines 7 Minuten langen Audiofiles etwa eine Minute. Eine ganze Minute Dauerlast, bei der kein Arbeiten an der Maschine mehr möglich ist. Startet man das ant script jedoch nicht direkt in Eclipse, sondern auf der Kommandozeile verringert sich die Laufzeit auf ca. 40s. Eine Zeitersparnis von ca. 30%.

Noch deutlicher wird der Unterschied auf meiner alten Ubuntu Linux Box mit 1,3GHz Rechner mit 512MB Ram. Eclipse braucht hier geschlagene 17 Minuten für die Tests. Auf der Kommandozeile hingegen konnte der Test in knapp einer Minute abgeschlossen werden. Solch einem starken Unterschied muss ich allerdings noch auf den Grund gehen! Aber dazu später mehr.

Mit Freude starte ich meine Unit Tests nun regelmäßig auf der Kommandozeile, und kann nebenbei weiter entwickeln, da Eclipse von dieser Last befreit ist.

Ergo: Es lohnt sich, neugierig zu sein.