.
|
|
| Autor | Beitrag |
|---|---|
|
025 09.10.2002, 16:29 apfelkorn |
lern c++ -- |
|
Profil || Suche |
|
026 09.10.2002, 18:38 Archangel |
mh, ich zähl trotzdem nur ~136 funktionen in der C standard library.. und davon die makros noch mitgezählt o_O @CN: hast du dein reply mitgezählt ? ich weiß nich wieso so viele umsonst sein sollen, hier wird doch wohl vernünftig diskutiert.. naja außerdem wieso will Diter nur ne befehlsreferenz, kein tut ? selbst n tut is imho nich genug, da sollte man sich schon n richtiges buch (K&R für C, The C++ programming language für C++) kaufen.. --Dieser Beitrag wurde am 09.10.2002 um 18:39 von Archangel bearbeitet. |
|
Profil || Suche |
|
027 09.10.2002, 23:42 Diter |
Ich meine etwas in der Richtung von Selfphp. Ausserdem waer es sehr freundlich, wenn ihr Compieler empfehlen koenntet THX The ScarryOne --anywhere |
|
Profil || Suche |
|
028 10.10.2002, 07:10 Zeeke |
Da gibt es DevC++ (benutzt Mingw).. ist ganz ok soweit... Kannst dir ja mal soetwas anschaun: http://www.volkard.de/vcppkold/inhalt.html Ciao -- |
|
Profil || Suche |
|
029 10.10.2002, 13:55 Prefect |
Ich glaube das "umsonst" war auf Diters Post bezogen, denn ganz offensichtlich hat er die Replies nicht gelesen (sie hätten seine Frage nämlich ziemlich ausführlich beantwortet). cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
030 10.10.2002, 14:23 snoopdog |
hmm also ich hab jetzt mla nen kleinen C und C++ Test gemacht, einfach nur ne Schleife die raufzählt, was ganz einfaches, nur ich kam auf komsiche Ergebnisse also hier der C code:
so ich habe erst 5 mal das c++ programm durchlaufen lassen 1. 23233 der Durchschnitt 34781,6 1. 27940 Durchschnitt 35240,4 Also am Durshcnitt sieht man das C++ etwas schneller ist, aber warum so große Geschwindigkeitstestdurchläufen?? Ich habe nix nebenbei gemacht, netmal die Maus bewegt, keine Musik gehöt, nix. Was sagen denn die Experten dazu?? --Visit our 500er Gamer Lan |
|
Profil || Suche |
|
031 10.10.2002, 15:21 Kriz |
Kommt auf den Compiler drauf an, wie er den Maschinencode noch nachträglich optimiert... Normalerweise erzeugt C++ von Natur aus mehr Overhead als C, aber wenn der Compiler geschickt alles Unnütze rausfummelt und den Rest kompakt zusammenkloppt, dann kann selbst ein C++ Programm u.U. schneller sein als ein C Programm und natürlich umgekehrt. Das beim obigen Beispiel C++ schneller ist als C, verwundert mich aber ein wenig. Schließlich muß das Programm zur Laufzeit in C++ die Klassen/Methodenreferenzen verwalten und verknüpfen. Da C meist auf globalen Aspekten basiert, ist der Geschwindigkeitszuwachs bei der C++ Variante schon merkwürdig. Mit was hast du die Programme kompilieren lassen? VC++, GCC odda-wodda? --K:R-I)Z++ |
|
Profil || Suche |
|
032 10.10.2002, 15:32 Diter |
Wieso, das meiste waren nur spekulationen, was schneller ist...? The SCarryOne -- anywhere |
|
Profil || Suche |
|
033 10.10.2002, 16:04 snoopdog |
jup mit vc 6.0 enterprise. Visit our 500er Gamer Lan |
|
Profil || Suche |
|
034 10.10.2002, 17:19 Tron |
@snoopdoog: zudem sagt deine testmethode _nichts_ aus, da du 2mal exakt das selbe auf die selbe weise machst, da die schleife mit printf wohl 99.99...% der zeit in anspruch nimmt, und das hat nichts mit einem algorithmus zu tun, der einmal prozedural und einmal oo realisiert ist. @kriz:
es gibt keinen gehehmeinen, staendig bremsenden c++-overhead, das ist nonsens.
das ist mir auch schwer schleierhaft, was soll das heissen? das klingt eher nach dynamischen binden, also .dlls, als nach objektorientierung. -- 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
035 10.10.2002, 17:27 snoopdog |
hmm @ Tron wenn du meinst, mit printf... ok nur dann sag mir mal bitte wie ich z.B. ne komplizierte Rechnung mache die viel Zeit in Anspruch nimmt und die dann ohne printf ausgebe??und das auf oop bzw C code also struktoriert. --Visit our 500er Gamer Lan |
|
Profil || Suche |
|
036 10.10.2002, 18:48 Prefect |
Diter: Das meiste waren _keine_ Spekulationen, sondern Posts, die versucht haben mehr oder weniger klar zu machen, daß der Geschwindigkeitsunterschied scheißegal ist, wenn es denn überhaupt einen gibt. Und einem Anfänger sollte er sowieso noch scheißegaler sein. Tron: Doch, einen versteckten Overhead gibt es in C++, und zwar Exceptionhandling und Framesetup usw. Diese Argumentation ist natürlich nur für Code relevant, der eigentlich kein Errorhandling bräuchte. Sobald man Errorhandling in C implementiert braucht man if()-Statements und damit Conditional Jumps, und dann ist der Runtime-Overhead des entsprechend C-Codes sehr wahrscheinlich größer als der des C++-Codes, denn der C++-Code mit Exceptions kommt ohne Branches aus. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
037 10.10.2002, 19:14 Tron |
da c implizit kein exception handling hat ist das ein vergleich zwischen aepfeln und birnen. 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
038 10.10.2002, 19:39 Kriz |
@Tron: Es geht bei Klassen und Methoden um die Art des Zugriffs. Statische Zugriffe laufen schneller ab als dynamische Zugriffe, virtuelle Zugriffe sind langsamer als nichtvirtuelle Zugriffe, mutable-Elemente verzögern den Ablauf, während auf konstante Elemente wiederum schneller zugegriffen werden kann usw. Das Klassenkonstrukt als Abart der Strukturkonstrukte ist durch das OOP eben ein aufwendigeres Verfahren als simples global/lokal Rumgehampel, aber das weißt du ja eh selber. Btw: Der Overhead ist in C++ da (Begründung siehe oben)... Aber ich scheiße auf den Overhead und gebe dem OOP als Modellierungsform den Vortritt. Da pfeif ich auf das bißchen Mehr-Code im Programm! --K:R-I)Z++ |
|
Profil || Suche |
|
039 10.10.2002, 20:13 Tron |
virtuell, mutabel und konstant sind paradigmen, die c nicht (implizit) kennt, das ist wieder ein aepfel-birnen-vergleich. bisher konnte mir niemand zeigen, dass c++ in einem gebiet langsamer sein _muss_ als c. mal ein kleines beispiel, was ich mir als einen vergleich vorstellen wuerde:
und warum soll hier nun eines schneller sein als das andere? (und kommt mir jetzt net mit inlining oder sowas, es geht hier um prozedural <-> oo und nicht um wie-toll-ist-mein-compiler) --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett Dieser Beitrag wurde am 10.10.2002 um 20:14 von Tron bearbeitet. |
|
Profil || Suche |
|
040 10.10.2002, 21:37 Kriz |
Das ist richtig, aber konstante Objekte werden definitiv schneller aufgerufen, da ihre Struktur nicht mehr verändert wird. Mutable-Objekte werden langsamer aufgerufen, weil ihre konstante Eigenschaft im Vorfeld temporär deaktiviert wird, ehe sie benutzt werden, um danach wieder konstant gemacht zu werden. Das ist - relativer - Zeitverlust in C++. OOP als Modell ist erstmal genauso schnell wie prozedural-imperatives Programmieren! Es kommt eben auf das System an, mit dem man OOP umsetzt... --K:R-I)Z++ |
|
Profil || Suche |
|

