Gewusst wie: Vergleichen von Computeralgorithmen

November 13

Software-Entwickler Wägen viele Faktoren beim Erstellen von Anwendungen und Webseiten. In der Anfangszeit, wenn Computer hatten wenig Speicher und Ressourcen, Größe und Geschwindigkeit die wichtigsten Anliegen waren. Heute überschreiben mit Multicore-Prozessoren und Gigabyte Speicher, Komplexität und Verwaltbarkeit oft Leistung. Hier sind einige der wichtigsten Faktoren zu berücksichtigen, wenn die richtigen Algorithmen für Ihr Projekt auswählen.

Anweisungen

1 Messen Sie Leistung. Der erste Faktor, der immer in den Sinn kommt, wenn einen Algorithmus zu messen ist die Geschwindigkeit. Niemand will für langsame Software warten. Es gibt mehrere Möglichkeiten, um festzustellen, welcher Algorithmus für die Aufgabe am besten durchführt. Ein Algorithmus kann manuell gemessen werden, durch das zählen von Anweisungen mit Wahrscheinlichkeiten um Ausführungspfade zu ermitteln. Noch einfacher sind Profiler, die zählen Maschinentakte während der Code ausgeführt wird.

2 Vergleichen Sie die Codegröße. Obwohl nicht ganz so wichtig wie Leistung, die Größe des Codes manchmal ein Faktor geworden. Embedded Software und mobile apps müssen oft begrenztem Arbeitsspeicher freigeben, und Browser-basierten Code braucht Zeit zum download. Manchmal kann eine kleine hit Performance geopfert werden, um eine erhebliche Menge an Code zu rasieren.

3 Der Komplexitätsgrad zu bestimmen. Die meisten kommerziellen Software-Entwickler schreiben Sie Code, die auf desktop-PCs oder Webservern mit viel Prozessorleistung und mehr als ausreichend Speicher bereitgestellt. Heute ist die größte Herausforderung bei der Bewältigung von Komplexität. Eine ziemlich einfache Geschäftsanwendung kann oft überall von einigen Dutzend bis mehreren hundert Codemodule, die jeweils mit mehreren hundert Zeilen Code haben. Bei diesen Anwendungen sind die besten Algorithmen einfach zu verstehen und einfach zu implementieren. Um Komplexität zu messen, die Anzahl der Entscheidungspunkte, Funktionsaufrufe, Anzahl der Variablen und der Komplexität der Datenstrukturen.

4 Vergleichen Sie die Wartbarkeit. Eng verbunden mit der Komplexität ist die Wartbarkeit. Ein Algorithmus mit geringerer Komplexität, mit viel Leerraum dargestellt und großzügig mit gut geschriebenen Kommentare werden viel leichter ändern, wenn die Anforderungen ändern. Die meisten Entwickler verbringen viel mehr Zeit pflegen und vorhandenen Code zu ändern, als sie zu tun, neuen Software zu erstellen.

5 Auf ihre Richtigkeit zu überprüfen. Oft übersehen, in einer Diskussion von Algorithmen ist die Notwendigkeit für einen geeigneten Algorithmus, der erfüllt alle Anforderungen und funktioniert einwandfrei. Der Code muss genaue Ergebnisse für Eingänge, einschließlich Randbedingungen und unerwartete Werte zurückgeben. Filter müssen im Ort, um fehlerhafte Daten ablehnen, und Ausnahmebehandlungscode muss auf numerischen Overflows, Unterläufe, Netzwerkfehler oder anderen Bedingungen reagieren.

6 Wählen Sie den am besten geeigneten Algorithmus. Die beste Wahl gleicht alle diese Faktoren in einer Weise, die Leistung bei gleichzeitiger Minimierung der Kosten für die Entwicklung und Besitz maximiert wird.