Hallo Leute ich habe eine Frage im Bezug auf die Geschwindigkeit von Programmen, bzw. meiner konkreten Anwendung.
Es geht mir darum herauszufinden was so generelle Verhaltensregeln sind um in c die Laufzeit der Programme klein zu halten. Die theoretischen Ideen über Laufzeiten kenne ich (d.h. Laufzeit Analyse usw. im Informatikgrundstudium).
Ich suche nach einer guten Beschreibung die mir kurz und knapp einige generelle Verhaltensregeln bzgl. des codes, nicht bzgl. der Struktur meines Algorithmus nennt. Alles was ich bisher entdeckt habe bleibt da absolut wage. Es heißt immer, dies oder das ist schnell aber ich suche nach konkreten Beispielen wann was wirklich zu erheblichen Unterschieden führt. Dabei interessieren mich zurzeit speziell folgende Fragen:
1. Wann benutze ich Zeigen wann Variablen, wie groß ist der Geschwindigkeitsunterschied?
2. Macht es einen Unterschied ob ich mein Programm in viele Unterfunktionen aufteile oder nicht?
3. Hat die Anzahl der an Unterfunktionen gegeben Paramter Einfluss auf die Laufzeit?
4. Variablen lieber lokal oder global deklarieren?
5. Welche Geschwindigkeitsunterschiede machen die Einzelnen typen (float double usw.)?
6. Wie benutze ich fprintf innerhalb einer sehr lang laufenden for schleife geschwindigkeitseffizient?
7. Parallelisierung mittels MPI einer for schleife deren Durchläufe unabhängig voneinander sind.
8. Böse if Abfragen sind die wirklich so langsam und wenn ja wie kann ich die verbessern?
9. usw.
Konkret geht es darum, dass ich eine forschleife habe, die mind. 1 Mio mal durchläuft und wie sich jeder ausrechen kann braucht das ganze Programm ca. 11 Tage wenn jeder Durchlauf auch nur 1 sec dauert. Parallelisierung ist übrigens kein Problem ich kann auf große Cluster zugreifen.
Vielen Dank
Lesezeichen