[Erledigt] C-Variante schneller

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

E. Urbach

ehemals "Basicprogger"

Betreff: [Erledigt] C-Variante schneller

BeitragFr, Jul 07, 2006 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Frage, wieso ist die in C geschriebene und in BMax eingebundene Funktion schneller als die, die man direkt in BMax schreibt?

BMax:
Code: [AUSKLAPPEN]
Import "test.c"

Extern
   Function mytest(a:Int, b:Int)
End Extern

Local l

'C
time = MilliSecs()

For I=0 To 10000
   For H=0 To 10000
      l = mytest(a,b)
   Next
Next

Print MilliSecs()-time

'BMax
time = MilliSecs()

For I=0 To 10000
   For H=0 To 10000
      l = mytest(a,b)
   Next
Next

Print MilliSecs()-time


Function Summe(a:Int, b:Int)
   Return a+b
End Function

C-Code als test.c abspeichern:
Code: [AUSKLAPPEN]
int mytest(int a, int b)
{
   return a+b;
}


Die in C implementierte Funktion ist ca. 5mal schneller.
Liegt das am Compiler oder am Code?
Heisst das dann, dass man alle seine Berechnungs-Funktionen in C schreiben und in BMax einbinden sollte?

EDIT: hat sich gekärt, Debug-Mode, sorry Embarassed
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

Jan_

Ehemaliger Admin

BeitragFr, Jul 07, 2006 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, dei C++ Compiler die ich kenne, können sowas ohne Functionsaufruf in den Code einfügen, wie wenn manns als Def gemacht hätte.
(heißt inline die Technik)
probiere es mal mit größeren und komplizierteren methoden.
between angels and insects

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group