Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: interpreter zu EXE Mar 3 Jan 2012 - 17:43 | |
| Hallo und ein frohes neues Jahr. Nur eine Idee nach Frage nach Geschwindigkeit von bignono. Wie gross ist der Unterschied von Interpreter zu EXE ? Meine Erwartung EXE ist Faktor 0,25 zu Interpreter 1,0. Achtung: Der Test 4 läuft sehr lange!!! Severin Hello and a happy new year. Just an idea to question the speed of bignono. How big is the difference between interpreter to exe? My expectation is EXE factor 0.25 to 1.0 interpreter. Caution: The test runs four very long! Severin Bonjour et bonne année. Juste une idée à la question de la vitesse de bignono. Quelle est la différence entre l'interprète d'exe? Mon attente est un facteur de 0,25 à 1,0 EXE interprète. Attention: Le test s'exécute quatre très longues! Severin - Code:
-
REM label Zahl0069 REM label ZAEHLEN label Zahl0070 label Zahl0071 label Zahl0072 label Zahl0073 REM label RahmenForm0000 ' DIM i% ' DIM Ende% ' DIM Start1$,Start2$,Start3$
DIM ENDE1$,ENDE2$,ENDE3$
DIM STUNDE1,STUNDE2,STUNDE3,STUNDE4,STUNDE5,STUNDE6
DIM MINUTE1 DIM MINUTE2 DIM MINUTE3 DIM MINUTE4 DIM MINUTE5 DIM MINUTE6
DIM SEKUNDE1 DIM SEKUNDE2 DIM SEKUNDE3 DIM SEKUNDE4 DIM SEKUNDE5 DIM SEKUNDE6
DIM wert1 Dim Wert2 Dim Wert3 Dim Wert4
DIM Dauer1 DIM Dauer2 DIM Dauer3 DIM Dauer4
REM FORM 0000 DEFINIEREN color 0000,193,193,193: REM ......FARBE EINSTELLEN Width 0000,screen_x-0 : REM ......BREITE 1680 Height 0000,screen_y-0 : REM ......HÖHE 1050 caption 0000," PC-Zeit Programmsammlung": REM ..... ÜBERSCHRIFT
REM Hauptmenü main_menu 0001
REM RAHMEN FÜR FORM 0000 ERSTELLEN Gosub RahmenForm0000
REM ERSTELLEN VON 21 UNTERMENÜS sub_menu 0002 : caption 0002,"Datei " : parent 0002, 0001 sub_menu 0003 : caption 0003,"zählen bis " : parent 0003, 0001
REM ERSTELLEN UNTERMENÜ 0002 sub_menu 0069 : caption 0069,"Beenden " : parent 0069, 0002
REM SPRUNG NACH DEM KLICK on_click 0069,Zahl0069 ' REM ERSTELLEN UNTERMENÜ 0003 sub_menu 0070 : caption 0070,"count to 1.000.000 " : parent 0070, 0003 sub_menu 0071 : caption 0071,"count to 10.000.000 " : parent 0071, 0003 sub_menu 0072 : caption 0072,"count to 100.000.000 " : parent 0072, 0003 sub_menu 0073 : caption 0073,"count to 1.000.000.000 " : parent 0073, 0003 ' REM SPRUNG NACH DEM KLICK on_click 0070,Zahl0070 on_click 0071,Zahl0071 on_click 0072,Zahl0072 on_click 0073,Zahl0073
end ' Zahl0069: terminate end ' ZAEHLEN: ' CLS Gosub RahmenForm0000 Wait 1000 Print_Locate 50,50:Print "start time: ",Time$ Start1$=Time$ ' FOR i% = 1 TO Ende%:NEXT i% Print_Locate 50, 70:Print "counted up: ",i%-1 Print_Locate 50, 90:Print "end time: ", Time$ ' ENDE1$=Time$ ' STUNDE1 = VAL(left$(START1$,2)) MINUTE1 = VAL(mid$(START1$,4,2)) SEKUNDE1 = VAL(right$(START1$,2)) Wert1 = (STUNDE1*60*60)+(MINUTE1*60)+SEKUNDE1 ' STUNDE2 = VAL(left$(ENDE1$,2)) MINUTE2 = VAL(mid$(ENDE1$,4,2)) SEKUNDE2 = VAL(right$(ENDE1$,2)) Wert2 = (STUNDE2*60*60)+(MINUTE2*60)+SEKUNDE2 Dauer1= Wert2-Wert1 ' Print_Locate 50,130:Print "duration: ",Dauer1 ' Print_Locate 50,210:Print "start time: ",Time$ Start2$=Time$ ' FOR i% = 1 TO Ende%:NEXT i% Print_Locate 50,230:Print "counted up: ",i%-1 Print_Locate 50,250:Print "end time: ",Time$ ENDE2$=Time$ ' STUNDE3 = VAL(left$(START2$,2)) MINUTE3 = VAL(mid$(START2$,4,2)) SEKUNDE3 = VAL(right$(START2$,2)) Wert1 = (STUNDE3*60*60)+(MINUTE3*60)+SEKUNDE3 ' STUNDE4 = VAL(left$(ENDE2$,2)) MINUTE4 = VAL(mid$(ENDE2$,4,2)) SEKUNDE4 = VAL(right$(ENDE2$,2)) Wert2 = (STUNDE4*60*60)+(MINUTE4*60)+SEKUNDE4 Dauer2= Wert2-Wert1 ' Print_Locate 50,290:Print "duration: ",Dauer2 ' Print_Locate 50,370:Print "start time: ",Time$ Start3$=Time$ FOR i% = 1 TO Ende%:NEXT i% Print_Locate 50,390:Print "counted up: ",i%-1 Print_Locate 50,410:Print "end time: ",Time$ ENDE3$=Time$ ' STUNDE5 = VAL(left$(START3$,2)) MINUTE5 = VAL(mid$(START3$,4,2)) SEKUNDE5 = VAL(right$(START3$,2)) Wert1 = (STUNDE5*60*60)+(MINUTE5*60)+SEKUNDE5 ' STUNDE6 = VAL(left$(ENDE3$,2)) MINUTE6 = VAL(mid$(ENDE3$,4,2)) SEKUNDE6 = VAL(right$(ENDE3$,2)) Wert2 = (STUNDE6*60*60)+(MINUTE6*60)+SEKUNDE6 Dauer3= Wert2-Wert1 ' Print_Locate 50,450:Print "duration: ",Dauer3 ' Dauer4=(Dauer1+Dauer2+Dauer3)/3 ' Print_Locate 50,500:Print "Average of 3 runs: ", Dauer4 ' return end ' Zahl0070: Ende% = 1000000 Gosub ZAEHLEN wait 1000 return end ' Zahl0071: Ende% = 10000000 Gosub ZAEHLEN wait 1000 return end ' Zahl0072: Ende% = 100000000 Gosub ZAEHLEN Wait 1000 return end ' Zahl0073: Ende% = 1000000000 Gosub ZAEHLEN Wait 1000 return end ' RahmenForm0000:
REM LINIEN OBEN 2d_line 0,0,screen_x- 9,0: REM AUSSENLINIE....OBEN 2d_line 3,3,screen_x-11,3: REM INNENLINE......OBEN
REM LINIEN LINKS 2d_line 0,0,0,screen_y-99: REM AUSSENLINIE....LINKS 2d_line 3,3,3,screen_y-102: REM INNENLINE......LINKS
REM LINIEN RECHTS 2d_line screen_x- 9,0,screen_x- 9,screen_y-99 : REM AUSSENLINIE....RECHTS 2d_line screen_x-11,3,screen_x-11,screen_y-102: REM INNENLINIE.....RECHTS
REM LINIEN UNTEN 2d_line 0,screen_y-99,screen_x-9,screen_y-99: REM AUSSENLINIE....UNTEN 2d_line 3,screen_y-102,screen_x-11,screen_y-102 : REM INNENLINIE.....UNTEN
return
Hier die Resultate: Interpreter PC10 WIN 7 64Bit, 3,3 sec, 36,6 sec, 363,6 sec, 3600 sec PC20 WIN 7 64Bit, 4,0 sec, 37,0 sec, 371,3 sec, 3688 sec PC30 WIN 7 32Bit, 4,0 sec, 42,0 sec, 419,6 sec, 4553 sec EXE-Programm PC10 WIN 7 64Bit, 3,3 sec, 36,6 sec, 364,3 sec, 3625 sec PC20 WIN 7 64Bit, 3,6 sec, 37,3 sec, 371,3 sec, 3700 sec PC30 WIN 7 32Bit, 4,3 sec, 41,3 sec, 439,6 sec, 4330 sec Das bedeutet das bei einem Programm die interne Verarbeitung von Daten kurz sein muss. Damit der Bediener sich nicht langweilt. Eine merkwürdige Erscheinung: Der Print-Befehl wird bei Test 3 und 4 erst sehr spät ausgeführt. This means that when a program's internal processing Data must be short. Thus the operator can not get bored. A curious phenomenon: The print command is executed in test 3 and 4 until very late. Cela signifie que quand un programme de traitement interne Les données doivent être courts. Ainsi, l'opérateur ne peut pas s'ennuyer. Un phénomène curieux: La commande d'impression est exécuté dans le test 3 et 4 jusqu'à très tard. | |
|
bignono
Nombre de messages : 1127 Age : 66 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: interpreter zu EXE Jeu 12 Jan 2012 - 7:26 | |
| Bonjour Severin et bonne année, Je ne comprends pas du tout l'allemand, mais avec les traductions française et anglaise, puis en analysant ton programme, j'ai fini par comprendre ce que tu as fait: Tu prends le temps avec time$ au début, tu fais une boucle à vide for...next de la valeur que l'on a choisi dans ton menu, puis tu reprends le time$ à la fin de la boucle et enfin tu mesures le temps d'éxécution de la boucle en faisant la différence entre les 2 time$. C'est une méthode classique que tout le monde a du tester déjà, mais la boucle for... next bloque le processeur je crois. Aucune autre opération ne peut lui être demandée. Il suffit de cliquer n'importe où dans ton form et l'on voit apparaître dans le titre de la fenêtre entre parenthèses "Ne répond pas". Je pense que ton programme permet de tester plutôt la vitesse d'éxécution de Panoramic, car à priori j'obtiens à peu près les mêmes résultats que toi. Tester la vitesse d'un processeur est plus complexe qu'il n'y parait, car tout dépend de sa conception, de la carte mère sur laquelle il est monté, des et du nombre de périphériques qu'il doit gérer, de la carte graphique, etc..., ainsi que des programmes de fond chargés par windows. Corrigez-moi, si je viens de raconter des bétises car je ne sais pas si je suis dans le vrai. Merci à toi Séverin. A bientôt Cordialement | |
|