Je voulais savoir s'il était possible d'optimisé un select case.
Voila pourquoi.
J'utilise le pattern de class factory pour instancié mes objects .. et
dans mon object creator j'ai
Select Case strobjname
Case obj1
set objectcreator = new obj1
Case obj2
set objectcreator = new obj2
Case obj3
set objectcreator = new obj3
...
Case obj99
set objectcreator = new obj99
End Select
En C++ le select case est fait a partir d'offset selon le valeur de ton
element evaluté, Si c 15 il s'en va a l'option 15 direct.
En VB lorsqu'on trace un select case, il fait tout les possibilité une à la
suite de l'autre jusqu'a temps qu'il arrive au bon case.
Si je place les classes qui sont créer le plus souvent en premier, est-ce
que ça optimiserai un peu la vitesse du case.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Lamarche
Bonjour,
je viens de faire un test avec un select case de 2000 enregistrement, et qu'il soit au debut ou a la fin ca prends toujours le meme temps. J'en deduis que c'est pour facilité le debuggage que VB nous fait parcourir le case un a un
Merci
Patrice "Patrice Lamarche" wrote in message news:%
Salut tout le monde,
Je voulais savoir s'il était possible d'optimisé un select case.
Voila pourquoi.
J'utilise le pattern de class factory pour instancié mes objects .. et dans mon object creator j'ai
Select Case strobjname Case obj1 set objectcreator = new obj1 Case obj2 set objectcreator = new obj2 Case obj3 set objectcreator = new obj3
... Case obj99 set objectcreator = new obj99 End Select
En C++ le select case est fait a partir d'offset selon le valeur de ton element evaluté, Si c 15 il s'en va a l'option 15 direct.
En VB lorsqu'on trace un select case, il fait tout les possibilité une à
la
suite de l'autre jusqu'a temps qu'il arrive au bon case. Si je place les classes qui sont créer le plus souvent en premier, est-ce que ça optimiserai un peu la vitesse du case.
Cordiallement
Patrice.
Bonjour,
je viens de faire un test avec un select case de 2000 enregistrement, et
qu'il soit au debut ou a la fin ca prends toujours le meme temps. J'en
deduis que c'est pour facilité le debuggage que VB nous fait parcourir le
case un a un
Merci
Patrice
"Patrice Lamarche" <Patrice.Lamarche@nospam.amadeus-csi.com> wrote in
message news:%23fnm0SzYDHA.2404@TK2MSFTNGP10.phx.gbl...
Salut tout le monde,
Je voulais savoir s'il était possible d'optimisé un select case.
Voila pourquoi.
J'utilise le pattern de class factory pour instancié mes objects .. et
dans mon object creator j'ai
Select Case strobjname
Case obj1
set objectcreator = new obj1
Case obj2
set objectcreator = new obj2
Case obj3
set objectcreator = new obj3
...
Case obj99
set objectcreator = new obj99
End Select
En C++ le select case est fait a partir d'offset selon le valeur de ton
element evaluté, Si c 15 il s'en va a l'option 15 direct.
En VB lorsqu'on trace un select case, il fait tout les possibilité une à
la
suite de l'autre jusqu'a temps qu'il arrive au bon case.
Si je place les classes qui sont créer le plus souvent en premier, est-ce
que ça optimiserai un peu la vitesse du case.
je viens de faire un test avec un select case de 2000 enregistrement, et qu'il soit au debut ou a la fin ca prends toujours le meme temps. J'en deduis que c'est pour facilité le debuggage que VB nous fait parcourir le case un a un
Merci
Patrice "Patrice Lamarche" wrote in message news:%
Salut tout le monde,
Je voulais savoir s'il était possible d'optimisé un select case.
Voila pourquoi.
J'utilise le pattern de class factory pour instancié mes objects .. et dans mon object creator j'ai
Select Case strobjname Case obj1 set objectcreator = new obj1 Case obj2 set objectcreator = new obj2 Case obj3 set objectcreator = new obj3
... Case obj99 set objectcreator = new obj99 End Select
En C++ le select case est fait a partir d'offset selon le valeur de ton element evaluté, Si c 15 il s'en va a l'option 15 direct.
En VB lorsqu'on trace un select case, il fait tout les possibilité une à
la
suite de l'autre jusqu'a temps qu'il arrive au bon case. Si je place les classes qui sont créer le plus souvent en premier, est-ce que ça optimiserai un peu la vitesse du case.
Cordiallement
Patrice.
Jonathan
Met un 'Exit Sub' dans chaque Case ! Comme çà dès qu'il aura trouvé sa condition alors il quittera le programme.
@+
Jonathan
Met un 'Exit Sub' dans chaque Case !
Comme çà dès qu'il aura trouvé sa condition alors il quittera le programme.
Met un 'Exit Sub' dans chaque Case ! Comme çà dès qu'il aura trouvé sa condition alors il quittera le programme.
@+
Jonathan
Patrice Lamarche
pas obliger il quitte deja le select lorsque la valeur est trouvé "Jonathan" <ANTISPAMbigbrother35@@hotmail.com> wrote in message news:3f3cefcf$0$27018$
Met un 'Exit Sub' dans chaque Case ! Comme çà dès qu'il aura trouvé sa condition alors il quittera le
programme.
@+
Jonathan
pas obliger il quitte deja le select lorsque la valeur est trouvé
"Jonathan" <ANTISPAMbigbrother35@@hotmail.com> wrote in message
news:3f3cefcf$0$27018$626a54ce@news.free.fr...
Met un 'Exit Sub' dans chaque Case !
Comme çà dès qu'il aura trouvé sa condition alors il quittera le
pas obliger il quitte deja le select lorsque la valeur est trouvé "Jonathan" <ANTISPAMbigbrother35@@hotmail.com> wrote in message news:3f3cefcf$0$27018$
Met un 'Exit Sub' dans chaque Case ! Comme çà dès qu'il aura trouvé sa condition alors il quittera le
programme.
@+
Jonathan
Zoury
Salut Pat! :O)
Case obj99 set objectcreator = new obj99
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne fonctionne qu'une fois compilée.. ;O))
'*** ' ObjectCreate As Object.. Set ObjectCreator = CreateObject(strLibName & "." & strObjName) '***
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le
late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne
fonctionne qu'une fois compilée.. ;O))
'***
' ObjectCreate As Object..
Set ObjectCreator = CreateObject(strLibName & "." & strObjName)
'***
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne fonctionne qu'une fois compilée.. ;O))
'*** ' ObjectCreate As Object.. Set ObjectCreator = CreateObject(strLibName & "." & strObjName) '***
Oui je peux faire ca ... mais mon exemple etait pas le bon .. j'utilise deja le late binding c'est pour le traitement un peu différent apres la création
Cordiallement
Patrice "Zoury" wrote in message news:%234wS$
Salut Pat! :O)
> Case obj99 > set objectcreator = new obj99
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne fonctionne qu'une fois compilée.. ;O))
'*** ' ObjectCreate As Object.. Set ObjectCreator = CreateObject(strLibName & "." & strObjName) '***
Oui je peux faire ca ... mais mon exemple etait pas le bon .. j'utilise deja
le late binding c'est pour le traitement un peu différent apres la création
Cordiallement
Patrice
"Zoury" <yanick_lefebvre@hotmail.com> wrote in message
news:%234wS$n0YDHA.2308@TK2MSFTNGP12.phx.gbl...
Salut Pat! :O)
> Case obj99
> set objectcreator = new obj99
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le
late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne
fonctionne qu'une fois compilée.. ;O))
'***
' ObjectCreate As Object..
Set ObjectCreator = CreateObject(strLibName & "." & strObjName)
'***
Oui je peux faire ca ... mais mon exemple etait pas le bon .. j'utilise deja le late binding c'est pour le traitement un peu différent apres la création
Cordiallement
Patrice "Zoury" wrote in message news:%234wS$
Salut Pat! :O)
> Case obj99 > set objectcreator = new obj99
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne fonctionne qu'une fois compilée.. ;O))
'*** ' ObjectCreate As Object.. Set ObjectCreator = CreateObject(strLibName & "." & strObjName) '***
Et c'est quoi le "late-binding", ça sert à quoi, est-ce que ça se mange ??? Faudrait voir à parler français, svp, moi rien comprendre !!!
Sinon, ben, en faisant des sous-tris, des if ou autres tous les x lignes de code, on devrait mathématiquement gagner un peu de vitesse, ça diminuerait au moins la lecture séquentielle... @+, bye, Joe :o)
"Zoury" a écrit dans le message de news:%234wS$
Salut Pat! :O)
> Case obj99 > set objectcreator = new obj99
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne fonctionne qu'une fois compilée.. ;O))
'*** ' ObjectCreate As Object.. Set ObjectCreator = CreateObject(strLibName & "." & strObjName) '***
Et c'est quoi le "late-binding", ça sert à quoi, est-ce que ça se mange ???
Faudrait voir à parler français, svp, moi rien comprendre !!!
Sinon, ben, en faisant des sous-tris, des if ou autres tous les x lignes de
code, on devrait mathématiquement gagner un peu de vitesse, ça diminuerait
au moins la lecture séquentielle...
@+, bye, Joe :o)
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:%234wS$n0YDHA.2308@TK2MSFTNGP12.phx.gbl...
Salut Pat! :O)
> Case obj99
> set objectcreator = new obj99
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le
late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne
fonctionne qu'une fois compilée.. ;O))
'***
' ObjectCreate As Object..
Set ObjectCreator = CreateObject(strLibName & "." & strObjName)
'***
Et c'est quoi le "late-binding", ça sert à quoi, est-ce que ça se mange ??? Faudrait voir à parler français, svp, moi rien comprendre !!!
Sinon, ben, en faisant des sous-tris, des if ou autres tous les x lignes de code, on devrait mathématiquement gagner un peu de vitesse, ça diminuerait au moins la lecture séquentielle... @+, bye, Joe :o)
"Zoury" a écrit dans le message de news:%234wS$
Salut Pat! :O)
> Case obj99 > set objectcreator = new obj99
dans un autre ordre d'idée, tu pourrais tout simplement utilisé le late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne fonctionne qu'une fois compilée.. ;O))
'*** ' ObjectCreate As Object.. Set ObjectCreator = CreateObject(strLibName & "." & strObjName) '***
early binding = Dim obj as collection (le VB sait que c'est ca va etre une collection et peut t'afficher les propriété)
late binding = Dim obj as object (le VB sait pas quel type d'objet ca va ete alors il ne peut pas afficher les propriété et optimisé le code) Dim obj = new Collection
plus d'info
http://faq.vb.free.fr/index.php?question4
.... 2- Non on ne gagnerai pas de vitess en fesant des sous tris parce qu'il est plus long faire 2 if et elseif c'Est plus lent qu'un SELECT CASE. Je crois que le lecture séquenciel d'un select case est juste une representation dans le mode debug parce que lors du roulement de l'application qu'on se trouve au premier case ou au 2000eme c'est le meme temps.
Cordiallement
Patrice "Joseph PUSZTAY" wrote in message news:
Et c'est quoi le "late-binding", ça sert à quoi, est-ce que ça se mange
???
Faudrait voir à parler français, svp, moi rien comprendre !!!
Sinon, ben, en faisant des sous-tris, des if ou autres tous les x lignes
de
code, on devrait mathématiquement gagner un peu de vitesse, ça diminuerait au moins la lecture séquentielle... @+, bye, Joe :o)
"Zoury" a écrit dans le message de news:%234wS$ > Salut Pat! :O) > > > Case obj99 > > set objectcreator = new obj99 > > dans un autre ordre d'idée, tu pourrais tout simplement utilisé le > late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne > fonctionne qu'une fois compilée.. ;O)) > > '*** > ' ObjectCreate As Object.. > Set ObjectCreator = CreateObject(strLibName & "." & strObjName) > '*** > > -- > Cordialement > Yanick Lefebvre - MVP pour Visual Basic > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ > >
Bonjour Joseph
1- Du early et late binding.
early binding = Dim obj as collection (le VB sait que c'est ca va etre
une collection et peut t'afficher les propriété)
late binding = Dim obj as object (le VB sait pas quel type d'objet ca va
ete alors il ne peut pas afficher les propriété et optimisé le code)
Dim obj = new Collection
plus d'info
http://faq.vb.free.fr/index.php?question4
....
2- Non on ne gagnerai pas de vitess en fesant des sous tris parce qu'il est
plus long faire 2 if et elseif c'Est plus lent qu'un SELECT CASE.
Je crois que le lecture séquenciel d'un select case est juste une
representation dans le mode debug parce que lors du roulement de
l'application qu'on se trouve au premier case ou au 2000eme c'est le meme
temps.
Cordiallement
Patrice
"Joseph PUSZTAY" <montmartre75@noos.fr> wrote in message
news:eDTPNj1YDHA.2384@tk2msftngp13.phx.gbl...
Et c'est quoi le "late-binding", ça sert à quoi, est-ce que ça se mange
???
Faudrait voir à parler français, svp, moi rien comprendre !!!
Sinon, ben, en faisant des sous-tris, des if ou autres tous les x lignes
de
code, on devrait mathématiquement gagner un peu de vitesse, ça diminuerait
au moins la lecture séquentielle...
@+, bye, Joe :o)
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:%234wS$n0YDHA.2308@TK2MSFTNGP12.phx.gbl...
> Salut Pat! :O)
>
> > Case obj99
> > set objectcreator = new obj99
>
> dans un autre ordre d'idée, tu pourrais tout simplement utilisé le
> late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne
> fonctionne qu'une fois compilée.. ;O))
>
> '***
> ' ObjectCreate As Object..
> Set ObjectCreator = CreateObject(strLibName & "." & strObjName)
> '***
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
>
early binding = Dim obj as collection (le VB sait que c'est ca va etre une collection et peut t'afficher les propriété)
late binding = Dim obj as object (le VB sait pas quel type d'objet ca va ete alors il ne peut pas afficher les propriété et optimisé le code) Dim obj = new Collection
plus d'info
http://faq.vb.free.fr/index.php?question4
.... 2- Non on ne gagnerai pas de vitess en fesant des sous tris parce qu'il est plus long faire 2 if et elseif c'Est plus lent qu'un SELECT CASE. Je crois que le lecture séquenciel d'un select case est juste une representation dans le mode debug parce que lors du roulement de l'application qu'on se trouve au premier case ou au 2000eme c'est le meme temps.
Cordiallement
Patrice "Joseph PUSZTAY" wrote in message news:
Et c'est quoi le "late-binding", ça sert à quoi, est-ce que ça se mange
???
Faudrait voir à parler français, svp, moi rien comprendre !!!
Sinon, ben, en faisant des sous-tris, des if ou autres tous les x lignes
de
code, on devrait mathématiquement gagner un peu de vitesse, ça diminuerait au moins la lecture séquentielle... @+, bye, Joe :o)
"Zoury" a écrit dans le message de news:%234wS$ > Salut Pat! :O) > > > Case obj99 > > set objectcreator = new obj99 > > dans un autre ordre d'idée, tu pourrais tout simplement utilisé le > late-binding afin de raccourcir ton code (et sa maintenance).. (ça ne > fonctionne qu'une fois compilée.. ;O)) > > '*** > ' ObjectCreate As Object.. > Set ObjectCreator = CreateObject(strLibName & "." & strObjName) > '*** > > -- > Cordialement > Yanick Lefebvre - MVP pour Visual Basic > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ > >