Seit wann ist VB schneller als C++?
-
Ich kauf mir'n LKW zum angeben aber einkaufen fahr ich immer mit'm Ferrari, ergo kann man in jeder Sprache Mist zusammenprogrammieren.
Bye, TGGC
-
klar kann man das, aber manche sprachen nehmen einem ein wenig arbeit denkarbeit ab, dafür sind deren "generellele" ansätze oft ein wenig langsammer als die optimale ausnutzung einer hardware näheren sprache"
schau dir einfach den code aus der c't an, der schreiber des artikels meint, dass c++ wohl langsammer ist, weil die constructor und destructor aufrufe unperformanter sind als die von java, c# und delphi, dabei reicht es in seinem code das "const String ..." in "const String& ..." mit "replace in files" zu ändern und schon läuft das ganze bei mir in 9 anstatt 15 sekunden (und der hat noch viel mehr solcher konstruckte).
das zeigt einfach nur (wie du schon sagtest), dass man die richtige sprache für sein vorhaben nehmen sollte, sondern dass man mit der sprache auch umgehen können muss und ansonsten garkeinen gewinn von der sprache bekommt.
ich hab schon viele leute gesehen, die ihren code von c++ auf assembler umgestellt haben und nicht wissen dass es für die cpu einen unterschied zwischen "sub eax,1 ... jnz m1" und "loop m1" gibt und am ende wurde es nur langsammer. genau wie der poster hier von vb auf c++ umstellt und sich über die performance wundert.rapso->Greets();
ps. das ist kein flame
-
VB übergibt standardmäßig byRef. Das könnte also tatsächlich schon der erste Grund sein.
-
Hallo!
Ja, ich weiß dass VB standardmäßig byref übergibt. Das hat hier aber sicher nichts mit dem Problem zu tun, in meinem kleinen Testprogramm übergebe ich nämlich gar nichts. Ich rufe in einer GameLoop einfach immer nur die gleiche parameterlose Funktion auf, die die Offscreen-Surface auf den BackBuffer kopiert, und diesen dann auf die Primary Surface flippt. Genauso mache ich es auch in VB.
Der Initialisierungscode spielt keine Rolle. Solange die Flags gleich eingestellt sind dürfe es keinen Unterschied geben, denn der Init-Code wird eh nur ein Mal ausgeführt. Und der Code in der GameLoop ist so kurz, dass ich mir nicht vorstellen kann dass ich dort so viel Rechenzeit verschwende.mfg
-
wenn das wenig ist, könntest du dann beide sources hier posten? vielleicht könnten wir ja den kleinen pikanten unterschied finden oder uns überzeugen dass VB schneller ist
rapso->greets();
-
Also Jungs, 500FPS der eine 200FPS der andere. Auch wenn er den C/C++ Code optimieren sollte glaube ich nicht das danach C/C++ 1500FPS schaft. Was er ja müsste. Weil er soll ja sehr viel schneller sein als VB und nicht gleich oder etwas schneller.
PS WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN
-
Christoph Redl, hast du vielleicht das C++ Ding als Debug-Version compiliert und ausgeführt?
-
Davon gehe ich sowieso schon aus
-.-Debug-Build und Debug-Run (oder Einzelschritt
).
-
hahaha
-
HANZO schrieb:
Also Jungs, 500FPS der eine 200FPS der andere. Auch wenn er den C/C++ Code optimieren sollte glaube ich nicht das danach C/C++ 1500FPS schaft. Was er ja müsste. Weil er soll ja sehr viel schneller sein als VB und nicht gleich oder etwas schneller.
PS WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN WIR WOLLEN CODE SEHEN WIR WOLLWN CODE SEHEN
In einem Post so viele Rechtschreibfehler...
-
Haben die in der ct dazu schon mal was gesagt, zu dem versauten Test?
-
[quote="Sgt. Nukem"]
HANZO schrieb:
In einem Post so viele Rechtschreibfehler...
da haste den falsch'n zittiert *fg*
rapso->greets();
-
Du jetzt auch
btw wir warten immer noch auf den Source
-
Also, wenn jemand die Bin´s des Directx9 SDK´s startet(Demo´s und Tutorial´s), so wird er merken das in den Anwendungen die in C#, VB und C++ vorhanden sind sich immer das gleiche herausstellt! Visual Basic ist mit c++ gleich auf und c# liegt immer dahinter.
Warum?
-
Wieviel hat das VB denn überhaupt damit zu tun ?
Kann ich mir das nicht so vorstellen das die Hauptarbeit von seitens der DX Api gemacht wird ?
-
Ja, das denke ich auch! Aber warum sind dann bei einigen Applikationen unterschiede von 5 - 300 Frames festzustellen?
Gruß Frank
-
frank2 schrieb:
Also, wenn jemand die Bin´s des Directx9 SDK´s startet(Demo´s und Tutorial´s), so wird er merken das in den Anwendungen die in C#, VB und C++ vorhanden sind sich immer das gleiche herausstellt! Visual Basic ist mit c++ gleich auf und c# liegt immer dahinter.
Warum?
Was beweist das C/C++ keine Zukunft hat. Das war einmal das C/C++ das schnellste war (ausser asm). Leute, es sollte euch klar werden das nur das Ergebniss zählt. Und nicht mit welcher Sprache oder API dieses Ziel erreicht wurde.
Wer C/C++ kann sollte dabei bleiben. Wer es noch lernen will sollte sich frage ob es nicht Alternativen gibt.
-
Wer es noch lernen will sollte sich frage ob es nicht Alternativen gibt.
Aber welche Alternativen hat man?
-
Hm, so pauschal zu sagen C++ sei langsamer .. WEiß nicht.
Und das ne Interpretersprache schneller sein soll ? WEiß nich.
Ich denke es hat hier viel mit der Programmierung u. Compiler zu tun.
Wie will man bitte sprachen vergleichen die überwiegend API Aufrufe verwenden ?Und dann die frage:
In was ist denn das DX9 geschrieben ? VB ?
-
Knuddlbaer schrieb:
Und dann die frage:
In was ist denn das DX9 geschrieben ? VB ?
Wenn man darüber nachdenkt was DX überhaupt macht sollte man schnell eine Antwort finden. DX bringt die möglichkeit über High Level Sprachen mit der Grafikkarte zu kommunizieren ohne Abhängig zu sein was es für eine ist. Also wird es sicherlich Assambler oder ähnliches sein. Die Matrix und Vektorrutinen sind auch in Assambler für die verschiedenen CPUs in optimierter Form.