J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à 1000 mS
ce timer me permet de mettre en mémoire RAM des données dans plusieurs
tables.
(ces données proviennes d'une carte analogique et d'un automate S7 via un
liaison Ethernet)
en fait, le Timer ne peut pas descendre en dessous de 15mS , je le constate
car j'utilise la fonction
GetTickCount pour voir la durée de ma sauvegarde en RAM et donc
je n'arrive pas à aller en dessous de 15mS
Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms par
exemple...
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
Clive Lumb
"Long YE-SU" a écrit dans le message de news:4506b448$0$5076$
J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à 1000
mS
ce timer me permet de mettre en mémoire RAM des données dans plusieurs tables. (ces données proviennes d'une carte analogique et d'un automate S7 via un liaison Ethernet)
en fait, le Timer ne peut pas descendre en dessous de 15mS , je le
constate
car j'utilise la fonction GetTickCount pour voir la durée de ma sauvegarde en RAM et donc je n'arrive pas à aller en dessous de 15mS
Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms
par
exemple...
(Remarque : c'est une application industrielle)
Sincères salutations Long YE-SU
J'ai fait faire un dll il y a fort longtemps qui utiliser le "vrai" tick count du processeur par l'appel RDTSC. Ci-après un exemple utilisé pour calculer la vitesse d'un processeur. Si cela t'interesse je pourrait t'envoyer une copie du dll. Sinon il y a une bibliothèque semblable ici http://www.vbfrance.com/codes/TIMER-SLEEP-CHRONOMETRAGE-VITESSE-PROCESSEUR-MICROSECONDE-PRES_33376.aspx
Declare Function RDTSC Lib "cputime.dll" () As Double
Function GetCPUSpeed(wait_for As Single) ' Returns CPU frequency of recent Intel processors that support the RDTSC call ' Measures frequency over a period of "wait_for" seconds ' Generally wait_for >= 2.5 for an accurate result ' (So far hes been tested succesfully on PIV, PIII, PII, PI, CyrixMX & AMD K6-3D, Duron, Athlon ' fails on Cyrix PR200) ' Requires CPUtime.dll - kindly supplied by Mike Bobowski of MGS Tech ' Place the following declaration in the module header ' Declare Function RDTSC Lib "CPUtime.dll" () As Double ' and place a copy of CPUtime.dll in the system(32) or application directory
Dim RT_Start As Single Dim RT_End As Single Dim RT_Elapsed As Single Dim CPU_Cycles As Double Dim CPU_ClockStart As Double Dim CPU_ClockEnd As Double ' Initialise start values of timers ' Do the 'timer' one first since it is the slowest RT_Start = Timer RT_End = RT_Start On Error GoTo No_RDTSC CPU_ClockStart = RDTSC On Error GoTo 0 ' Run for 1 seconds While RT_End - RT_Start < wait_for RT_End = Timer Wend CPU_ClockEnd = RDTSC 'Calculate real elapsed time RT_Elapsed = RT_End - RT_Start 'Calculate CPU clock cycles CPU_Cycles = CPU_ClockEnd - CPU_ClockStart 'The clock speed is then derived by the following equation: GetCPUSpeed = CPU_Cycles / (RT_Elapsed * 1000000) Exit Function No_RDTSC: GetCPUSpeed = 0 Exit Function Resume Next
End Function
"Long YE-SU" <ye-su@sdsi.fr> a écrit dans le message de
news:4506b448$0$5076$ba4acef3@news.orange.fr...
J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à 1000
mS
ce timer me permet de mettre en mémoire RAM des données dans plusieurs
tables.
(ces données proviennes d'une carte analogique et d'un automate S7 via un
liaison Ethernet)
en fait, le Timer ne peut pas descendre en dessous de 15mS , je le
constate
car j'utilise la fonction
GetTickCount pour voir la durée de ma sauvegarde en RAM et donc
je n'arrive pas à aller en dessous de 15mS
Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms
par
exemple...
(Remarque : c'est une application industrielle)
Sincères salutations
Long YE-SU
J'ai fait faire un dll il y a fort longtemps qui utiliser le "vrai" tick
count du processeur par l'appel RDTSC.
Ci-après un exemple utilisé pour calculer la vitesse d'un processeur.
Si cela t'interesse je pourrait t'envoyer une copie du dll.
Sinon il y a une bibliothèque semblable ici
http://www.vbfrance.com/codes/TIMER-SLEEP-CHRONOMETRAGE-VITESSE-PROCESSEUR-MICROSECONDE-PRES_33376.aspx
Declare Function RDTSC Lib "cputime.dll" () As Double
Function GetCPUSpeed(wait_for As Single)
' Returns CPU frequency of recent Intel processors that support the RDTSC
call
' Measures frequency over a period of "wait_for" seconds
' Generally wait_for >= 2.5 for an accurate result
' (So far hes been tested succesfully on PIV, PIII, PII, PI, CyrixMX & AMD
K6-3D, Duron, Athlon
' fails on Cyrix PR200)
' Requires CPUtime.dll - kindly supplied by Mike Bobowski of MGS Tech
' Place the following declaration in the module header
' Declare Function RDTSC Lib "CPUtime.dll" () As Double
' and place a copy of CPUtime.dll in the system(32) or application
directory
Dim RT_Start As Single
Dim RT_End As Single
Dim RT_Elapsed As Single
Dim CPU_Cycles As Double
Dim CPU_ClockStart As Double
Dim CPU_ClockEnd As Double
' Initialise start values of timers
' Do the 'timer' one first since it is the slowest
RT_Start = Timer
RT_End = RT_Start
On Error GoTo No_RDTSC
CPU_ClockStart = RDTSC
On Error GoTo 0
' Run for 1 seconds
While RT_End - RT_Start < wait_for
RT_End = Timer
Wend
CPU_ClockEnd = RDTSC
'Calculate real elapsed time
RT_Elapsed = RT_End - RT_Start
'Calculate CPU clock cycles
CPU_Cycles = CPU_ClockEnd - CPU_ClockStart
'The clock speed is then derived by the following equation:
GetCPUSpeed = CPU_Cycles / (RT_Elapsed * 1000000)
Exit Function
No_RDTSC:
GetCPUSpeed = 0
Exit Function
Resume Next
"Long YE-SU" a écrit dans le message de news:4506b448$0$5076$
J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à 1000
mS
ce timer me permet de mettre en mémoire RAM des données dans plusieurs tables. (ces données proviennes d'une carte analogique et d'un automate S7 via un liaison Ethernet)
en fait, le Timer ne peut pas descendre en dessous de 15mS , je le
constate
car j'utilise la fonction GetTickCount pour voir la durée de ma sauvegarde en RAM et donc je n'arrive pas à aller en dessous de 15mS
Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms
par
exemple...
(Remarque : c'est une application industrielle)
Sincères salutations Long YE-SU
J'ai fait faire un dll il y a fort longtemps qui utiliser le "vrai" tick count du processeur par l'appel RDTSC. Ci-après un exemple utilisé pour calculer la vitesse d'un processeur. Si cela t'interesse je pourrait t'envoyer une copie du dll. Sinon il y a une bibliothèque semblable ici http://www.vbfrance.com/codes/TIMER-SLEEP-CHRONOMETRAGE-VITESSE-PROCESSEUR-MICROSECONDE-PRES_33376.aspx
Declare Function RDTSC Lib "cputime.dll" () As Double
Function GetCPUSpeed(wait_for As Single) ' Returns CPU frequency of recent Intel processors that support the RDTSC call ' Measures frequency over a period of "wait_for" seconds ' Generally wait_for >= 2.5 for an accurate result ' (So far hes been tested succesfully on PIV, PIII, PII, PI, CyrixMX & AMD K6-3D, Duron, Athlon ' fails on Cyrix PR200) ' Requires CPUtime.dll - kindly supplied by Mike Bobowski of MGS Tech ' Place the following declaration in the module header ' Declare Function RDTSC Lib "CPUtime.dll" () As Double ' and place a copy of CPUtime.dll in the system(32) or application directory
Dim RT_Start As Single Dim RT_End As Single Dim RT_Elapsed As Single Dim CPU_Cycles As Double Dim CPU_ClockStart As Double Dim CPU_ClockEnd As Double ' Initialise start values of timers ' Do the 'timer' one first since it is the slowest RT_Start = Timer RT_End = RT_Start On Error GoTo No_RDTSC CPU_ClockStart = RDTSC On Error GoTo 0 ' Run for 1 seconds While RT_End - RT_Start < wait_for RT_End = Timer Wend CPU_ClockEnd = RDTSC 'Calculate real elapsed time RT_Elapsed = RT_End - RT_Start 'Calculate CPU clock cycles CPU_Cycles = CPU_ClockEnd - CPU_ClockStart 'The clock speed is then derived by the following equation: GetCPUSpeed = CPU_Cycles / (RT_Elapsed * 1000000) Exit Function No_RDTSC: GetCPUSpeed = 0 Exit Function Resume Next
End Function
Long YE-SU
merci je vais vois dans ce sens.
Sincères salutations Long YE-SU
"Clive Lumb" a écrit dans le message de news:
"Long YE-SU" a écrit dans le message de news:4506b448$0$5076$ > J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à
1000
mS > > ce timer me permet de mettre en mémoire RAM des données dans plusieurs > tables. > (ces données proviennes d'une carte analogique et d'un automate S7 via
un
> liaison Ethernet) > > en fait, le Timer ne peut pas descendre en dessous de 15mS , je le constate > car j'utilise la fonction > GetTickCount pour voir la durée de ma sauvegarde en RAM et donc > je n'arrive pas à aller en dessous de 15mS > > Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms par > exemple... > > (Remarque : c'est une application industrielle) > > Sincères salutations > Long YE-SU
J'ai fait faire un dll il y a fort longtemps qui utiliser le "vrai" tick count du processeur par l'appel RDTSC. Ci-après un exemple utilisé pour calculer la vitesse d'un processeur. Si cela t'interesse je pourrait t'envoyer une copie du dll. Sinon il y a une bibliothèque semblable ici
Declare Function RDTSC Lib "cputime.dll" () As Double
Function GetCPUSpeed(wait_for As Single) ' Returns CPU frequency of recent Intel processors that support the RDTSC call ' Measures frequency over a period of "wait_for" seconds ' Generally wait_for >= 2.5 for an accurate result ' (So far hes been tested succesfully on PIV, PIII, PII, PI, CyrixMX & AMD K6-3D, Duron, Athlon ' fails on Cyrix PR200) ' Requires CPUtime.dll - kindly supplied by Mike Bobowski of MGS Tech ' Place the following declaration in the module header ' Declare Function RDTSC Lib "CPUtime.dll" () As Double ' and place a copy of CPUtime.dll in the system(32) or application directory
Dim RT_Start As Single Dim RT_End As Single Dim RT_Elapsed As Single Dim CPU_Cycles As Double Dim CPU_ClockStart As Double Dim CPU_ClockEnd As Double ' Initialise start values of timers ' Do the 'timer' one first since it is the slowest RT_Start = Timer RT_End = RT_Start On Error GoTo No_RDTSC CPU_ClockStart = RDTSC On Error GoTo 0 ' Run for 1 seconds While RT_End - RT_Start < wait_for RT_End = Timer Wend CPU_ClockEnd = RDTSC 'Calculate real elapsed time RT_Elapsed = RT_End - RT_Start 'Calculate CPU clock cycles CPU_Cycles = CPU_ClockEnd - CPU_ClockStart 'The clock speed is then derived by the following equation: GetCPUSpeed = CPU_Cycles / (RT_Elapsed * 1000000) Exit Function No_RDTSC: GetCPUSpeed = 0 Exit Function Resume Next
End Function
merci
je vais vois dans ce sens.
Sincères salutations
Long YE-SU
"Clive Lumb" <clumb2@gratuit_en_anglais.fr.invalid> a écrit dans le message
de news: ekbusFn1GHA.1040@TK2MSFTNGP06.phx.gbl...
"Long YE-SU" <ye-su@sdsi.fr> a écrit dans le message de
news:4506b448$0$5076$ba4acef3@news.orange.fr...
> J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à
1000
mS
>
> ce timer me permet de mettre en mémoire RAM des données dans plusieurs
> tables.
> (ces données proviennes d'une carte analogique et d'un automate S7 via
un
> liaison Ethernet)
>
> en fait, le Timer ne peut pas descendre en dessous de 15mS , je le
constate
> car j'utilise la fonction
> GetTickCount pour voir la durée de ma sauvegarde en RAM et donc
> je n'arrive pas à aller en dessous de 15mS
>
> Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms
par
> exemple...
>
> (Remarque : c'est une application industrielle)
>
> Sincères salutations
> Long YE-SU
J'ai fait faire un dll il y a fort longtemps qui utiliser le "vrai" tick
count du processeur par l'appel RDTSC.
Ci-après un exemple utilisé pour calculer la vitesse d'un processeur.
Si cela t'interesse je pourrait t'envoyer une copie du dll.
Sinon il y a une bibliothèque semblable ici
Declare Function RDTSC Lib "cputime.dll" () As Double
Function GetCPUSpeed(wait_for As Single)
' Returns CPU frequency of recent Intel processors that support the RDTSC
call
' Measures frequency over a period of "wait_for" seconds
' Generally wait_for >= 2.5 for an accurate result
' (So far hes been tested succesfully on PIV, PIII, PII, PI, CyrixMX & AMD
K6-3D, Duron, Athlon
' fails on Cyrix PR200)
' Requires CPUtime.dll - kindly supplied by Mike Bobowski of MGS Tech
' Place the following declaration in the module header
' Declare Function RDTSC Lib "CPUtime.dll" () As Double
' and place a copy of CPUtime.dll in the system(32) or application
directory
Dim RT_Start As Single
Dim RT_End As Single
Dim RT_Elapsed As Single
Dim CPU_Cycles As Double
Dim CPU_ClockStart As Double
Dim CPU_ClockEnd As Double
' Initialise start values of timers
' Do the 'timer' one first since it is the slowest
RT_Start = Timer
RT_End = RT_Start
On Error GoTo No_RDTSC
CPU_ClockStart = RDTSC
On Error GoTo 0
' Run for 1 seconds
While RT_End - RT_Start < wait_for
RT_End = Timer
Wend
CPU_ClockEnd = RDTSC
'Calculate real elapsed time
RT_Elapsed = RT_End - RT_Start
'Calculate CPU clock cycles
CPU_Cycles = CPU_ClockEnd - CPU_ClockStart
'The clock speed is then derived by the following equation:
GetCPUSpeed = CPU_Cycles / (RT_Elapsed * 1000000)
Exit Function
No_RDTSC:
GetCPUSpeed = 0
Exit Function
Resume Next
"Long YE-SU" a écrit dans le message de news:4506b448$0$5076$ > J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à
1000
mS > > ce timer me permet de mettre en mémoire RAM des données dans plusieurs > tables. > (ces données proviennes d'une carte analogique et d'un automate S7 via
un
> liaison Ethernet) > > en fait, le Timer ne peut pas descendre en dessous de 15mS , je le constate > car j'utilise la fonction > GetTickCount pour voir la durée de ma sauvegarde en RAM et donc > je n'arrive pas à aller en dessous de 15mS > > Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms par > exemple... > > (Remarque : c'est une application industrielle) > > Sincères salutations > Long YE-SU
J'ai fait faire un dll il y a fort longtemps qui utiliser le "vrai" tick count du processeur par l'appel RDTSC. Ci-après un exemple utilisé pour calculer la vitesse d'un processeur. Si cela t'interesse je pourrait t'envoyer une copie du dll. Sinon il y a une bibliothèque semblable ici
Declare Function RDTSC Lib "cputime.dll" () As Double
Function GetCPUSpeed(wait_for As Single) ' Returns CPU frequency of recent Intel processors that support the RDTSC call ' Measures frequency over a period of "wait_for" seconds ' Generally wait_for >= 2.5 for an accurate result ' (So far hes been tested succesfully on PIV, PIII, PII, PI, CyrixMX & AMD K6-3D, Duron, Athlon ' fails on Cyrix PR200) ' Requires CPUtime.dll - kindly supplied by Mike Bobowski of MGS Tech ' Place the following declaration in the module header ' Declare Function RDTSC Lib "CPUtime.dll" () As Double ' and place a copy of CPUtime.dll in the system(32) or application directory
Dim RT_Start As Single Dim RT_End As Single Dim RT_Elapsed As Single Dim CPU_Cycles As Double Dim CPU_ClockStart As Double Dim CPU_ClockEnd As Double ' Initialise start values of timers ' Do the 'timer' one first since it is the slowest RT_Start = Timer RT_End = RT_Start On Error GoTo No_RDTSC CPU_ClockStart = RDTSC On Error GoTo 0 ' Run for 1 seconds While RT_End - RT_Start < wait_for RT_End = Timer Wend CPU_ClockEnd = RDTSC 'Calculate real elapsed time RT_Elapsed = RT_End - RT_Start 'Calculate CPU clock cycles CPU_Cycles = CPU_ClockEnd - CPU_ClockStart 'The clock speed is then derived by the following equation: GetCPUSpeed = CPU_Cycles / (RT_Elapsed * 1000000) Exit Function No_RDTSC: GetCPUSpeed = 0 Exit Function Resume Next
End Function
X
Bonjour,
T'as déjà de la chance de voir 15ms, avec tout le cheminement... Je doute que le timer descende à 1ms, car il n'aurait pas le temps d'exécuter ce qu'il doit faire, dans une application classique, généralement entre 50ms et 1 ms on ne voit aucune différence...
-- Site ROMANS édités http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm Site LOGICIELS http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm ------------------------------------------------------------------------------------ "Long YE-SU" a écrit dans le message de news: 4506b448$0$5076$
J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à 1000 mS
ce timer me permet de mettre en mémoire RAM des données dans plusieurs tables. (ces données proviennes d'une carte analogique et d'un automate S7 via un liaison Ethernet)
en fait, le Timer ne peut pas descendre en dessous de 15mS , je le constate car j'utilise la fonction GetTickCount pour voir la durée de ma sauvegarde en RAM et donc je n'arrive pas à aller en dessous de 15mS
Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms par exemple...
(Remarque : c'est une application industrielle)
Sincères salutations Long YE-SU
Bonjour,
T'as déjà de la chance de voir 15ms, avec tout le cheminement... Je
doute que le timer descende à 1ms, car il n'aurait pas le temps d'exécuter
ce qu'il doit faire, dans une application classique, généralement entre 50ms
et 1 ms on ne voit aucune différence...
--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Long YE-SU" <ye-su@sdsi.fr> a écrit dans le message de news:
4506b448$0$5076$ba4acef3@news.orange.fr...
J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à 1000
mS
ce timer me permet de mettre en mémoire RAM des données dans plusieurs
tables.
(ces données proviennes d'une carte analogique et d'un automate S7 via un
liaison Ethernet)
en fait, le Timer ne peut pas descendre en dessous de 15mS , je le
constate
car j'utilise la fonction
GetTickCount pour voir la durée de ma sauvegarde en RAM et donc
je n'arrive pas à aller en dessous de 15mS
Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms
par
exemple...
T'as déjà de la chance de voir 15ms, avec tout le cheminement... Je doute que le timer descende à 1ms, car il n'aurait pas le temps d'exécuter ce qu'il doit faire, dans une application classique, généralement entre 50ms et 1 ms on ne voit aucune différence...
-- Site ROMANS édités http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm Site LOGICIELS http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm ------------------------------------------------------------------------------------ "Long YE-SU" a écrit dans le message de news: 4506b448$0$5076$
J'utilise un Timer dont je paramètre l'interval par soft entre 1mS à 1000 mS
ce timer me permet de mettre en mémoire RAM des données dans plusieurs tables. (ces données proviennes d'une carte analogique et d'un automate S7 via un liaison Ethernet)
en fait, le Timer ne peut pas descendre en dessous de 15mS , je le constate car j'utilise la fonction GetTickCount pour voir la durée de ma sauvegarde en RAM et donc je n'arrive pas à aller en dessous de 15mS
Est ce normal ? pourquoi avec un PC plutôt rapide je ne peux avoir 1 ms par exemple...