In unseren Algorithmenkursen lernen wir an der Universität, wie man die Komplexität verschiedener einfacher Algorithmen, die in der Praxis verwendet werden, wie z. B. Hash-Tabellen oder schnelle Sortierung, genau berechnet.
Aber jetzt, in einem großen Softwareprojekt, wenn wir es schneller machen wollen, schauen wir uns nur einzelne Teile an - ein paar verschachtelte Schleifen, die durch eine schnellere Hash-Tabelle ersetzt werden können, eine langsame Suche hier, die beschleunigt werden kann Eine ausgefallenere Technik - aber wir berechnen niemals die Komplexität unserer gesamten Pipeline.
Gibt es eine Möglichkeit, das zu tun? Oder verlassen sich die Menschen in der Praxis nur auf "lokal" mithilfe eines schnellen Algorithmus, um die gesamte Anwendung schneller zu machen, anstatt die Anwendung global als Ganzes zu betrachten?
(Weil es mir nicht trivial erscheint, zu zeigen, dass Sie, wenn Sie eine große Anzahl von Algorithmen stapeln, von denen bekannt ist, dass sie für sich genommen sehr schnell sind, auch eine schnelle Anwendung als Ganzes erhalten.)
Ich frage dies, weil ich die Aufgabe habe, ein großes Projekt zu beschleunigen, das jemand anderes geschrieben hat, in dem viele Algorithmen interagieren und an Eingabedaten arbeiten. Daher ist mir unklar, wie sich die Beschleunigung einzelner Algorithmen auswirkt die ganze Anwendung.
n
.