.
|
|
| Autor | Beitrag |
|---|---|
|
025 01.06.2005, 00:43 epidemic |
ok, ein verständlicher code (mit bool) wär mir wahrscheinlich eeh wichtiger als das bisschen Geschwindigkeit. Kann man eigendlich irgendwie festlegen in welcher Reihenfolge die Variablen in den Speicher geladen werden? [edit] Der Optimist glaubt, dass wir in der Besten aller Welten leben. Dieser Beitrag wurde am 01.06.2005 um 00:44 von epidemic bearbeitet. |
|
Profil || Suche |
|
026 01.06.2005, 09:06 oxff |
gcc & cc (MSVC++6) sortieren lokale Variablen auf dem Stack nach der Reihenfolge der Deklaration. --mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik |
|
Profil || Suche |
|
027 01.06.2005, 15:01 theDon |
Optimierungen koennen die Verteilung auch beieinflussen (Zum Beispiel durch `common subexpression elimination'). --\o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
028 01.06.2005, 20:21 Kriz |
Oder durch Automatic Register Allocation. Eigentlich würfelt fast jede speicherbezogene Optimierung die Stackreihenfolge so oder so durcheinander. Das beste ist per Debugger die ASM-Sequenzen und ggf. den Stack zu beobachten, dann weiß man ungefähr wie der Code die Variablen auf dem Stack pusht (bzw. ein Memspy, der sollte den Job auch erledigen können). --K:R-I)Z++ |
|
Profil || Suche |
|
029 01.06.2005, 23:58 epidemic |
Naja, ich hab gerade in Prefects Tutorial über Partikel bei SDL gelesen, dass zur Laufzeit die Daten ohnehin manchmal verschoben werden (zumindest wenn ich den Satz richtig verstanden habe, das ist jedenfalls der Grund weshalb man die Surfaces "locken" muss), also ist das eeh sehr unsicher (und sowieso sinnlos) auf Variablen per überweitem Arrayparameter zuzugreifen. Btw, noch eine klitze-kleine allgemeine Frage (ich glaub ich sollte besser für die ganzen kleinen Fragen nen eigenen Thread aufsuchen, das wird ja sonst bald Chaos wenn jede Frage immer so eine Diskussion aufwirft ^^): Ich hab schonmal gesucht ob es vielleicht irgendwo eine Tabelle gibt in der aufgelistet ist, was viel Rechenleistung verbraucht und was der Rechner ganz locker packt (z.B. Division > Multiplikation > Addition/Subtraktion oder call-by-value > call-by-reference > call-by-pointer oder soetwas). Der Optimist glaubt, dass wir in der Besten aller Welten leben. Dieser Beitrag wurde am 02.06.2005 um 00:00 von epidemic bearbeitet. |
|
Profil || Suche |
|
030 02.06.2005, 00:33 Kriz |
Du kannst void immer als Rückgabewert nehmen, wenn die Funktion oder Methode nichts zurückliefern soll. Wer erzählt denn so eine Scheiße mit "kein richtiges C++"? Für Fehleranalyse gibbet außer der Ausnahmebehandlung nur noch zwei sinnvolle C++ Möglichkeiten: 1. Der Rückgabewert selber ^^ --- Wenn ein Rückgabewert nicht weiterverarbeitet wird, geht er ins Nirvana über. Das kann man getrost in Kauf nehmen. --- Benutze Dev-C++ unter Windows, da gibt's einen feinen Profiler zumindest für die Function callings. Da kann man schon erkennen, was wieviel Zeit, Zyklen usw. verbraucht :) --K:R-I)Z++ Dieser Beitrag wurde am 02.06.2005 um 00:38 von Kriz bearbeitet. |
|
Profil || Suche |
|
031 02.06.2005, 10:33 oxff |
Ausnahmen rumwerfen, Rumversuchen und Rumfangen sollte aber keinesfalls unterschlagen werden: mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik |
|
Profil || Suche |
|
032 02.06.2005, 16:57 theDon |
Das bezog sich dann aber ausdruecklich auf `void main()', was in der Tat falsch ist. Mal abgesehen von der Verwendung als Zeigertyp ist void auch nur als Rueckgabetyp zu gebrauchen. --\o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|

