Gast
#4590435
Moin! Ich hatte mal einen sehr aufschlussreichen Artikel gelesen, in dem es darum ging, welche Bedeutung die im Betreff genannten Kriterien für die effiziente Lösung einer Problemstellung haben. Leider erinnere ich mich nicht mehr, woher der Artikel stammte. Weiß rein zufällig jemand von euch, um welchen Artikel es sich handeln könnte oder kennt ihr eine ähnliche Darstellung? Demnach kann z.B. der effizienteste Algorithmus in endlicher Zeit oft keine brauchbaren Ergebnisse liefern, wenn das Problem durch ein ungeeignetes Modell beschrieben wird. (Z.B. wäre es das falsche Modell, einen CPU-Emulator durch ein Spice-Modell aller Transistoren und sonstigen Analog-Komponenten zu beschreiben, da kann die Spice-Software noch so schnell sein.). Die nächstwichtige Frage, wenn das Modell feststeht, wurde als die Frage nach dem passenden Algorithmus identifiziert, bevor man überhaupt über die notwendige Hardware oder mögliche Optimierungen eine bestimmten Programmiersprache bis hin zu Assemblerprogrammierung nachdenkt. (Wieder ein Beispiel, Spice muss häufig Nullstellen beliebiger Funktionen suchen. Würde man einfache Bisektion anwenden, hätte man keine befriedigenden Laufzeiten, sondern man muss zwingend das Newtonverfahren einsetzen.) ... und so weiter. Fazit war, dass C-Gurus, die den letzten Taktzyklus aus einer einzelnen Funktion herauskitzeln, durchaus ihre Daseinsberechtigung haben, dass es aber am Anfang eines Projekts viel wichtiger ist, die sinnvollsten Modelle und Algorithmen zu suchen, da man sonst durch einfaches Austauschen des Modells mehrere Monate Arbeit der Quellcodeoptimierer überflüssig macht. Also, kennt jemand einen Artikel oder ein Buchkapitel, wo das, was ich hier kurz umrissen habe, gründlich untermauert ist? Danke Markus