Français
Wünsche et Anregungen

X11Beta6: between vers cas/si

 
je comprends quelque chose pas! mon Performancevergleich entre Between et einer eigenen Funktion hat ergeben cela qui eigene Funktion deutlich plus rapide arbeitet.

j'ai peut-être mais aussi faux getestet! ici mon Test pour Between (wird chez mir 18.000 la fois abgearbeitet)
KompilierenMarqueSéparation
var BALL.XS!=0
var BALL.YS!=0
var BALL.RS!=0
CLS
var TME&=&GETTICKCOUNT+3000
var C&=0

WHILE &GETTICKCOUNT<TME&

    C&=C&+1
    PERFPROC()

ENDWHILE

PRINT C&
WAITINPUT
END

proc PERFPROC

    BALL.XS!=RND(40)-20
    BALL.YS!=RND(40)-20
    RETURN RECTINTERSECT(BALL.XS!,BALL.YS!,100,100,50,50,200,200)

endproc

proc RECTINTERSECT

    PARAMETERS X!,Y!,XX!,YY!,XXX!,YYY!,XXXX!,YYYY!
    RETURN BETWEEN(X!,XXX!,XXXX!,Y!,XXX!,YYYY!) OR BETWEEN(XX!,XXX!,XXXX!,YY!,XXX!,YYYY!)

endproc


et ici qui schnellere eigene Version (wird chez mir 21.000 la fois abgearbeitet)
KompilierenMarqueSéparation
var BALL.XS!=0
var BALL.YS!=0
var BALL.RS!=0
CLS
var TME&=&GETTICKCOUNT+3000
var C&=0

WHILE &GETTICKCOUNT<TME&

    C&=C&+1
    PERFPROC()

ENDWHILE

PRINT C&
WAITINPUT
FIN

proc PERFPROC

    BALL.XS!=RND(40)-20
    BALL.YS!=RND(40)-20
    RETOUR RECTINTERSECT(BALL.XS!,BALL.YS!,100,100,50,50,200,200)

endproc

proc RECTINTERSECT

    PARAMETERS X!,Y!,XX!,YY!,XXX!,YYY!,XXXX!,YYYY!

    IF (XX!<XXX!) OU (X!>XXXX!)

        RETOUR 0

    ENDIF

    IF (YY!<YYY!) OU (Y!>YYYY!)

        RETOUR 0

    ENDIF

    RETOUR 1

endproc


qui schnellere Version hat plus XProfanzeilen, je hätte gemeint cela Between im or-Doppelpack quand même plus rapide ist.
 
22.11.2007  
 



je vois grad cela
KompilierenMarqueSéparation
proc RECTINTERSECT

    PARAMETERS X!,Y!,XX!,YY!,XXX!,YYY!,XXXX!,YYYY!
    RETURN BETWEEN(X!,XXX!,XXXX!,Y!,XXX!,YYYY!) OR BETWEEN(XX!,XXX!,XXXX!,YY!,XXX!,YYYY!)

endpr
sowieso faux ist, mais cela sollte im Bezug sur den Geschwindigkeitstest keinen Einfluss avons.
 
23.11.2007  
 




RGH
Versuche es la fois avec qui neuen Funktion INTERSECT():
KompilierenMarqueSéparation
var BALL# = new(xpRect)
BALL#.posx! = 0
BALL#.posy! = 0
BALL#.x! = 100
BALL#.y! = 100
var TEST# = new(xpRect)
TEST#.posx! = 50
TEST#.posy! = 50
TEST#.x! = 150
TEST#.y! = 150
CLS
var TME&=&GETTICKCOUNT+3000
var C&=0

WHILE &GETTICKCOUNT<TME&

    C&=C&+1
    PERFPROC()

ENDWHILE

PRINT C&
WAITINPUT
END

proc PERFPROC

    BALL#.posx! = RND(40)-20
    BALL#.posy! = RND(40)-20
    RETURN RECTINTERSECT(BALL#, TEST#)

endproc

proc RECTINTERSECT

    PARAMETERS X#, Y#

    IFNOT INTERSECT(r, X#, Y#)

        RETURN 0

    ENDIF

    RETURN 1

endproc


qui letzer Procédure ist seulement à cause de qui Vergleichbarkeit là. Bien sûr serait mach sur cet verzichten et dessus juste INTERSECT(s, BALL#, TEST#) écrivons, quoi qui Geschichte nochmal um sur 40% beschleunigt.
Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.11.2007  
 




RGH
ah oui: naturellement serait on chez Bällen qui Struktur xpSphere verwenden:
KompilierenMarqueSéparation
var BALL# = new(xpSphere)
BALL#.posx! = 0
BALL#.posy! = 0
BALL#.x! = 100
var TEST# = new(xpSphere)
TEST#.posx! = 50
TEST#.posy! = 50
TEST#.x! = 100
CLS
var TME&=&GETTICKCOUNT+3000
var C&=0

WHILE &GETTICKCOUNT<TME&

    C&=C&+1
    PERFPROC()

ENDWHILE

PRINT C&
WAITINPUT
END

proc PERFPROC

    BALL#.posx! = RND(40)-20
    BALL#.posy! = RND(40)-20
    RETURN INTERSECT(s, BALL#, TEST#)

endproc

 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.11.2007  
 




RGH
iF
je comprends quelque chose pas! mon Performancevergleich entre Between et einer eigenen Funktion hat ergeben cela qui eigene Funktion deutlich plus rapide arbeitet.
qui schnellere Version hat plus XProfanzeilen, je hätte gemeint cela Between im or-Doppelpack quand même plus rapide ist.


allô iF,

quoi XProfan-interne assez viel Zeit usé, ist cela Auswerten de Parametern, égal si comme Funktionsparameter dans Klammern ou bien comme Procédure-paramètre avec PARAMETERS. dans Deinem Beispiel avec BETWEEN gibt es en une stattliche Anzahl plus, comme dans dem sans (20 ici et 8 là).
qui Vorteil de BETWEEN ist ici qui, dass Du eigentlich aucun eigene Proztedur RECTINTERSECT plus brauchst et den Einzeiler direct einsetzen peux. déjà réduire sich qui übergebenen paramètre de 20 sur 12 ... et déjà ist cela Ganze doppelt so vite (quoique es toujours 4 Parameterübergaben plus sommes):
KompilierenMarqueSéparation
var BALL.XS!=0
var BALL.YS!=0
CLS
var TME&=&GETTICKCOUNT+3000
var C&=0

WHILE &GETTICKCOUNT<TME&

    C&=C&+1
    PERFPROC()

ENDWHILE

PRINT C&
WAITINPUT
END

proc PERFPROC

    BALL.XS!=RND(40)-20
    BALL.YS!=RND(40)-20
    RETURN BETWEEN(BALL.XS!,50,200,BALL.YS!,50,200) OR
    BETWEEN(100,50,200,100,50,200)

endproc


Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.11.2007  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.374 Views

Untitledvor 0 min.
H.Brill24.09.2023
holmol9330.05.2013
Torben Nissen12.02.2012
bastler17.01.2011

Themeninformationen

cet Thema hat 2 participant:

RGH (3x)
iF (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie