2010-12-20 5 views
0

Gibt es eine Software/Profilierungswerkzeug, dasSoftware Profilieren Werkzeuge

+0

@InSane: Ist zyklomatische Komplexität nicht ein ganz anderes Thema? –

+0

@Mike - Sie haben absolut Recht! Mein Verstand ging in einer kompletten Tangente da..danke !! – InSane

Antwort

1

Big-O beschreibt, wie die Laufzeit eines Algorithmus und eine Reihe von Eingaben gibt Ihnen die Effizienz des Algorithmus in Bezug auf die O-Notation gegeben (und Speicher Raum) eines algorighm Skalen mit Eingaben unterschiedlicher Größen, so würde ein solches Werkzeug nicht einen bestimmten Eingang annehmen müssen.

Wenn Sie eine Reihe von Eingaben für eine Reihe von Größen generieren können, geben Sie jeden Eingang an den Algorithmus weiter, messen Sie die Ausführungszeit (und/oder Speichergröße), und plotten Sie das Ergebnis, dann können Sie es mit verschiedenen möglichen vergleichen Groß-O-Kurven.

Ich kenne keinen solchen allgemeinen symbolischen Algorithmus, und es klingt wie ein bisschen ein AI-Problem. Eine zu schreiben wäre eine gute Übung. Es gibt wahrscheinlich Algorithmen, die nicht analysiert werden konnten, aber es könnte in der Lage sein, eine nützliche Teilmenge zu analysieren.

+0

Ich denke, es wäre möglich, einen Blick auf die zeitliche Komplexität eines Algorithmus zu erhaschen, indem man das fragliche Programm mehrmals mit verschiedenen (großen) Eingaben ausführt, die Laufzeit misst und dann interpoliert. Das resultierende Diagramm würde eine ungefähre Darstellung der Funktion liefern, die die Abhängigkeit zwischen Eingabegröße und Laufzeit darstellt. –

+0

@Grigory: Ja. (Ich denke, ich sagte das.) –

+0

Ah, ja, ich verstehe. Scheint so, als hätte ich deine Antwort nicht genau genug gelesen :) –