.
|
|
| Autor | Beitrag |
|---|---|
|
000 18.04.2002, 10:36 WareWolf |
Da ich immer gern weiss, welcher Code nun effektiv vom C++ Compiler erzeugt wird, habe ich mir mal den Code bei eigens erstellten kleinen Beispielprogrammen angeschaut. Es geht um Klassendefinition, speziell um die innerhalb der Klasse verwendeten Methoden. Nun könnte man ja sagen, das ist wurscht und bei irgendwelchen Büroanwendungen kann das auch tatsächlich wurscht sein, aber bei technischen Programmen oder bei der Spieleprogrammierung ist die Geschwindigkeit des erzeugten Codes meiner Meinung nach sehr wichtig. Nun meine eigentliche Frage: Ich kenne mich mit den Compilern zu wenig aus, aber gibt es vielleicht eine Compilereinstellung,#präprozessor-Anweisung oder ähnliches um den Compiler zu überreden, direkt den Code dort zu plazieren, wo er auch später gebraucht wird? --Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴ |
|
Profil || Suche |
|
001 18.04.2002, 11:29 Tron |
inline einfach bei der methodendeklaration dazusetzen, also inline int thefunction(); dies beschleungigt nicht zwangslaeufig das programm, es kann sogar verlangsamen! stichwort: paging, cache eine strategie ist es erst ohne inline zu coden, dann profilen und dann fall fuer fall inline zu verwenden und wieder profilen. --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
002 18.04.2002, 12:18 WareWolf |
oh THX, das ist genau das, was ich brauche. Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴ |
|
Profil || Suche |
|
003 18.04.2002, 16:01 [RMen]OneStone |
- Fertiges Progamm Disassemblieren Die entsprechende Stelle markierst du am besten mit nem __asm XOR BX, 254, wird sonst nirgends vorkommen (Pushen & Poppen nicht vergessen!). georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/ |
|
Profil || Suche |
|
004 18.04.2002, 16:14 Tron |
OneStone, was laberst du da? --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
005 18.04.2002, 16:23 [RMen]OneStone |
Was ist das für eine sinnlose Äusserung? Was gefällt dir daran denn nicht? --georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/ |
|
Profil || Suche |
|
006 18.04.2002, 17:53 Kriz |
o_O --K:R-I)Z++ |
|
Profil || Suche |
|
007 19.04.2002, 00:55 Another1 |
'Georg Wicherski is irre' Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
008 19.04.2002, 09:27 WareWolf |
hmmm...ich bin mir jetzt nicht mehr so ganz sicher, ob ich nun verarscht wurde oder nicht =) --Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴ |
|
Profil || Suche |
|
009 20.04.2002, 15:44 m0rgu3 |
Nimm halt einfach keine Klassen her... Normales C --Man brauchte drei C64 um zum Mond zu fliegen. Win2k braucht mindestens einen PII 350. Irgendwas stimmt doch da nicht! |
|
Profil || Suche |
|
010 20.04.2002, 18:27 Tron |
und warum sollte er das? --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
011 20.04.2002, 18:33 blair |
Na das ist doch ganz eindeutig! Gut das m0rgu3 uns darauf hingewiesen hat... --because our freedom sits at the end of a gun |
|
Profil || Suche |
|
012 21.04.2002, 12:49 WareWolf |
bei eigenen Klassendeklarationen ist mir das jetzt auch klar, durch den Hinweis auf "inline". Ausserdem habe ich festgestellt, dass wenn ich die Methoden direkt in der Klasse (unter public) definiere, wird der Code der Methoden auch jedesmal an die Stelle platziert, an die er soll. Also entgegen den Lehrbüchern nicht die Prototypen sondern die komplette Methode. Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴ |
|
Profil || Suche |
|
013 21.04.2002, 13:24 [RMen]OneStone |
Was habt ihr denn alle? Was ich geschrieben habe ist doch richtig. Warum bin ich plötzlich irre? --georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/ |
|
Profil || Suche |
|
014 21.04.2002, 13:40 Tron |
sagt dir atomkanonen-spatzen-prinzip was? 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
015 21.04.2002, 14:36 [RMen]OneStone |
Na gut... War ja nur nett gemeint... --georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/ |
|
Profil || Suche |
|
016 22.04.2002, 20:57 TheTinySteini |
btw dürfte die Vorgehensweise einige Offset-Adressen durcheinander bringen... --TheTinySteini |
|
Profil || Suche |
|
017 25.04.2002, 19:46 thinktank |
Benutzt ihr eigentlich inline - ASM ? -- |
|
Profil || Suche |
|
018 25.04.2002, 21:56 TheTinySteini |
Nö... nur für evil hacks. Ne, ehrlich gesagt, nein. Nur aus reiner Neugierde wie das ganze so geht hab ich damit mal was gemacht. Aber sonst reicht eigentlich stinknormales C/C++. TheTinySteini |
|
Profil || Suche |
|
019 26.04.2002, 14:38 Prefect |
Außerdem kann man selbst aus geschwindigkeitskritischem Zeug oft kaum mehr was rauskitzeln - es sei denn man kann z.B. Instructionsets wie MMX anwenden. Meistens hilft ein effektiverer Algorithmus bzw. effektivere Datenstrukturen viel mehr beim Optimieren. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
020 26.04.2002, 16:11 anothergb02 |
JA eine gute, schnelle/effektive und schön anzusehende Engine müsste wohl immer !! Grundlage sein ! Wobei ich doch schon für die Nutzung von Inline bin. Being in john Malkovich |
|
Profil || Suche |
|
021 27.04.2002, 12:51 Mazze |
Jetzt mal ganz Allgemein: Wenn sie sehr oft aufgerufen wird? --BattleTech-MOD: |
|
Profil || Suche |
|
022 27.04.2002, 13:06 thinktank |
Soweit ich weiß, wenn sie ziemlich klein ist. Also so wie Worin besteht der Unterschied zwischen einem Makro und |
|
Profil || Suche |
|
023 27.04.2002, 14:09 Ferdi |
wenn die Funktion so simpel ist dass der Call Overhead einer normalen Funktion die Performance beeinträchtigen würde -- |
|
Profil || Suche |
|
024 27.04.2002, 14:35 Mazze |
aha. BattleTech-MOD: |
|
Profil || Suche |
|

