FMAPI
Messages postés29Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention27 juin 2008
-
16 juin 2008 à 21:17
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016
-
17 janv. 2009 à 22:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
J'ai testé, la fonction met 7 secondes pour retrouver 11800 fichiers avec la même extension sur un HD de ... 320Go's!
Connais-tu les "Script" ?
ErySoft Alias FMAPI
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 17 juin 2008 à 12:37
FMAPI> ne t'inquiete pas j'accepte volontier toutes remarques je voulais juste preciser que vb c'est quand meme "moyen" pour donner dans la performance.
@+
FMAPI
Messages postés29Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention27 juin 2008 17 juin 2008 à 07:25
EBArtSoft,
Je ne mets pas en cause VB6, ni Delpi ... je trouve seulement que les priorités sont anarchiques, mais n'oublions pas que les applications en général, ne demandent pas un Timing de précision. Pour les puritains, ce n'est pas utilisable.
Enfin, les coups et les douleurs, c'est chacun son truc.
Il m'arrive souvent d'être confronté au problème de chronologie des évènements ... pour être clair :
Sub Test()
X
Y
Z
End Sub
Ces trois lignes devraient s'exécuter dans l'ordre ... et bien pas toujours ... Windows est vérolé à la base.
Je ne critique pas ton travail, qui d'ailleurs, m'inspire.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 16 juin 2008 à 22:05
FMAPI> n'oublions pas que l'on est dans du vb6. Pour ce qui est de lstrcpy je dirais simplement : "Il faut savoir ce que l'on fait"
car lstrcpy ne fait qu'appeler lstrlen avant la copie.
L'event est la pour rendre "accessible" le timer pour du vb cela suffit largement. J'aurais pu passer par une interface mais on aurait du instancier plein de truc et ce n'est pas necessaire.
Le but de la source est vraiment de faire simple et pratique. Avec la machine virtuelle il n'est pas raisonable de vouloir faire de la "pure optimisation" tout nos efforts serait vain.
FMAPI
Messages postés29Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention27 juin 2008 16 juin 2008 à 21:33
J'avais oublié ...
Je bosse sur des µC, et la structure de Windows ne permet pas de donner une précision Suisse du timing de traitement des <> routines en mémoire. Il n'y a que les interruptions OVF du 8253 qui peuvent donner à un Timer digne de ce nom, cette précision. Ces interfaces IO sont adressables en PortIn et PortOut. Cà peut tourner sous XP, et -.
Je travaille dessus
Eryc
FMAPI
Messages postés29Date d'inscriptionjeudi 22 mai 2008StatutMembreDernière intervention27 juin 2008 16 juin 2008 à 21:17
Belle façon d'écrire une routine en assembleur, et de l'appeler.
Pour le Timer, tant que vous utiliserez les Events ... y'a pas bon ... même avec une très haute priorité, si un handle ne rend pas la main ...
Il ne reste que le détournement d'interruption des 8259!
Sinon, toujours très original ... ne pas utiliser CopyMemory pour les string, mais CopyString de Kernel32. J'ai déjà vu une de tes applic's qui plantait grave quand on copier un string dans un buffer, ou l'inverse ... surtout si on changeait sa place ... très dangereux, céar non déplaçable.
juju59
Eryc
Public Declare Function API_KL_Sring_Copy _
Lib "kernel32" _
Alias "lstrcpyA" _
(ByVal Texte_1 As String, _
ByVal Texte_2 As String) _
As Long
'---------------------------------------------------------------------------------------
Public Declare Sub API_KL_Copy_Memory _
Lib "kernel32.dll" _
Alias "RtlMoveMemory" _
(ByRef Destination As Any, _
ByRef Source As Any, _
ByVal Longueur As Long)
17 janv. 2009 à 22:49
Une source sur les Timer ... sans m'en parler !
Quel lipus l'a donc ... heu ... piqué !
Ya plus de respect j'vous l'dit
Afyn * Navedac
23 juin 2008 à 07:55
23 juin 2008 à 06:27
Juste une petite question :
"Attention toutefois le debuggage dans l'IDE est deconseillé si vous ne maitrisez pas les concepts du sousclassement."
Qu'est-ce que vous entendez par "souclassement" ?
Par avance merci.
Marco.
17 juin 2008 à 22:32
J'ai trouvé une source géniale :
http://www.vbfrance.com/code.aspx?ID=26384
J'ai testé, la fonction met 7 secondes pour retrouver 11800 fichiers avec la même extension sur un HD de ... 320Go's!
Connais-tu les "Script" ?
ErySoft Alias FMAPI
17 juin 2008 à 12:37
@+
17 juin 2008 à 07:25
Je ne mets pas en cause VB6, ni Delpi ... je trouve seulement que les priorités sont anarchiques, mais n'oublions pas que les applications en général, ne demandent pas un Timing de précision. Pour les puritains, ce n'est pas utilisable.
Enfin, les coups et les douleurs, c'est chacun son truc.
Il m'arrive souvent d'être confronté au problème de chronologie des évènements ... pour être clair :
Sub Test()
X
Y
Z
End Sub
Ces trois lignes devraient s'exécuter dans l'ordre ... et bien pas toujours ... Windows est vérolé à la base.
Je ne critique pas ton travail, qui d'ailleurs, m'inspire.
16 juin 2008 à 22:05
car lstrcpy ne fait qu'appeler lstrlen avant la copie.
L'event est la pour rendre "accessible" le timer pour du vb cela suffit largement. J'aurais pu passer par une interface mais on aurait du instancier plein de truc et ce n'est pas necessaire.
Le but de la source est vraiment de faire simple et pratique. Avec la machine virtuelle il n'est pas raisonable de vouloir faire de la "pure optimisation" tout nos efforts serait vain.
16 juin 2008 à 21:33
Je bosse sur des µC, et la structure de Windows ne permet pas de donner une précision Suisse du timing de traitement des <> routines en mémoire. Il n'y a que les interruptions OVF du 8253 qui peuvent donner à un Timer digne de ce nom, cette précision. Ces interfaces IO sont adressables en PortIn et PortOut. Cà peut tourner sous XP, et -.
Je travaille dessus
Eryc
16 juin 2008 à 21:17
Pour le Timer, tant que vous utiliserez les Events ... y'a pas bon ... même avec une très haute priorité, si un handle ne rend pas la main ...
Il ne reste que le détournement d'interruption des 8259!
Sinon, toujours très original ... ne pas utiliser CopyMemory pour les string, mais CopyString de Kernel32. J'ai déjà vu une de tes applic's qui plantait grave quand on copier un string dans un buffer, ou l'inverse ... surtout si on changeait sa place ... très dangereux, céar non déplaçable.
juju59
Eryc
Public Declare Function API_KL_Sring_Copy _
Lib "kernel32" _
Alias "lstrcpyA" _
(ByVal Texte_1 As String, _
ByVal Texte_2 As String) _
As Long
'---------------------------------------------------------------------------------------
Public Declare Sub API_KL_Copy_Memory _
Lib "kernel32.dll" _
Alias "RtlMoveMemory" _
(ByRef Destination As Any, _
ByRef Source As Any, _
ByVal Longueur As Long)