vc++ vs c++builder - Geschwindigkeit der erzeugten Programme



  • hallo,
    bin ein absoluter vc++ und borland c++builder neuling.
    habe ein kleines mandelbrot programm geschrieben und mit vc++ (mfc) und c++builder 6 trial (vcl) compiliert (exact gleicher algorithmus bis auf die routinen zum pixelsetzen natürlich).vc++ is im releasemodus zweimal! schneller als c++builder. im debugmodus etwa genauso schnell (oder langsam). irgendwie kriege ich es nicht auf die reihe, cbuilder ordentliche release exes machen zu lassen, im gegenteil, wenn ich "Project options:compiler:release" anklicke, wird es sogar noch langsamer. die veränderung der advanced compiler options bringen auch nix. habe sogar die graphikausgabe deaktiviert, falls diese die verlangsahmung bewirkt. habe das gleiche auch mit delphi 7 enterprise trial programmiert und es ist genauso langsam wie cbuilder. ist die trialversion irgendwie limitiert (keine release exe)? was mache ich falsch? bin mit den projekt optionen ((advanced)compiler,linker etc) nicht besonders vertraut, vielleicht übersehe ich was

    code:

    short x,y,colorcounter,bailout,xmax,ymax,zaehler,maxiter;
    	double cox,coy,zx,zy,tempx,xscale,yscale,xside,yside;
    	double leftside,rightside,top,bottom,betrq;
    
    	xmax=500;
    	ymax=500;
        	maxiter=5000;
    	leftside=-1.5;
    	top=0.9;
    	rightside=0.5;
    	bottom=-1.1;
    	xside=rightside-leftside;
    	yside=bottom-top;
    	xscale=xside/xmax;
    	yscale=yside/ymax;
    	bailout=4;
    	add1=0;add2=0;sum1=0;sum2=0;zet=0;
    
    	for (y=0;y<ymax;y++)
    		{
    		for (x=0;x<xmax;x++)
    			{
    			cox=x*xscale+leftside;
    			coy=y*yscale+top;
    			zx=0;
    			zy=0;
    			colorcounter=0;
    			betrq=0;
    			zaehler=0;
    			while (colorcounter<maxiter && betrq<bailout)
    				{
    				tempx=zx*zx-zy*zy+cox;
    				zy=2*zx*zy+coy;
    				zx=tempx;
    				colorcounter=colorcounter+1;
    				betrq=zx*zx+zy*zy;
    				}
    
    			if (betrq<bailout) /* schwarzen pixel setzen */;
    			else /* weißen pixel setzen */;
    			}
    		}
    

    system:
    vc++: visual studio 6.0
    c++builder 6 enterprise trial
    windows xp home sp1
    intel pentium m (centrino) 1400mhz

    Edit:
    Bitte die Code-Tags benutzen, und bitte aussagekräftige Überschriften wählen. Danke!



  • Habe ein einfacheres Beispiel, das jeder testen kann.

    auf meinem rechner ergibt es (default einstellungen für compiler options):

    vc++:
    debug:4400ms
    release:700ms

    bcb:
    debug:1300ms
    release:2600ms

    das ist schon sehr seltsam! habt ihr ähnliche geschwindigkeitsverhältnisse?
    zur erinnerung, ich benutze die trialversion von c++builder 6. das verbreiten der exes ist untersagt. vielleicht ist die optimierung in dieser version ausgeschaltet. habe in anderen foren einige alte posts aus dem jahre 2001 gefunden, die sich über die optimierung bei c++builder (wohl ältere versionen)beschweren. vcc++ dagegen fürt sinnlose loops (zb:variable=0) erst gar nicht aus.

    #include "stdafx.h"
    #include <time.h>
    #include <conio.h>
    #include <iostream>
    using namespace std;
    
    void main() {
       clock_t beg;
       double j;
       beg = clock();
    
       for (double i=0; i<200000000; ++i) j = i*1000000;
       int dif = clock()-beg;
       cout << dif << endl;
       getch();
    }
    

Anmelden zum Antworten