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
Das war nicht zufällig der Wikipedia-Artikel https://en.wikipedia.org/wiki/Program_optimization ? Ansonsten, erfahrenen Entwicklern ist nicht unbekannt, dass die Wahl des Algorithmus normalerweise einen größeren Einfluss auf die Performance hat, als die Optimierung von Codezeilen.
Ist dir schon diese Einführung in die Komplexitätstheorie aufgefallen? https://www.youtube.com/watch?v=DkE8R-4CKOQ
Jay schrieb: > Das war nicht zufällig der Wikipedia-Artikel > https://en.wikipedia.org/wiki/Program_optimization ? Nein, der Inhalt ist schon ähnlich, doch mein gesuchter Artikel war noch anschaulicher, weil er das ganze am Beispiel einer bestimmten, komplexen Simulation erklärte (ich weiß nur nicht mehr, zu welchem genauen Thema). > Ansonsten, erfahrenen Entwicklern ist nicht unbekannt, dass die Wahl des > Algorithmus normalerweise einen größeren Einfluss auf die Performance > hat, als die Optimierung von Codezeilen. Das kann sein. Leider arbeitet man micht ausschließlich mit erfahrenen Entwicklern zusammen, und dann muss man Code-verliebten Hackern manchmal etwas nachhelfen, wenn Sie Monate Arbeitszeit in einen suboptimalen Algorithmus investieren wollen. Der Wikipediaartikel ist schon hilfreich. Vielleicht finde ich ja noch anschaulicheres Material in der Richtung. Danke! Markus
So was kommt mir auch bekannt vor... Könnte auf Stackoverflow verlinkt sein, auf http://lambda-the-ultimate.org/ oder im http://c2.com/cgi/wiki?WelcomeVisitors zu finden sein, ebensogut bei Joel Spolsky http://www.joelonsoftware.com oder auf https://blog.codinghorror.com/ oder in einem anderen Blog...
:
Bearbeitet durch User
A geh. Solche Code-verliebten Hacker kann man einfach mit Scrum hinters Licht führen. Du nimmst einfach 2 Gruppen. Die einen arbeiten Konzepte aus. Dazu gehört auch die Auswahl der Algorithmen. Den anderen legt die erste Gruppe dann kleine Stories zum eintippen auf den Tisch. Einfach die Zeitvorgaben so knapp setzen, dass die nicht an unsinnigen Details rumfeilen können. Solchen Leuten kannst du erzählen, Stories eintippen sei Entwicklertätigkeit.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.