Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1450 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

vitesse application

n°1038056
FlorentG
Unité de Masse
Posté le 06-04-2005 à 20:01:47  profilanswer
 

Reprise du message précédent :

benou a écrit :

à ma connaissance, y a très peu de hardware capable d'un telle précision => tant que t'es sur du x86 classique, la fonction est inutile (enfin je crois [:petrus75])


Ben la fonction utilisée sous la 1.4 (system.currentTimeMillis) avait une précision de 12ms sous XP, et de 45 ms sous 98 [:alph-one] Bonjour le truc ;)

mood
Publicité
Posté le 06-04-2005 à 20:01:47  profilanswer
 

n°1038057
the real m​oins moins
Posté le 06-04-2005 à 20:02:01  profilanswer
 

benou a écrit :

y a un monde entre dorte supposition et certitude [:spamafote]


dorte ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1038062
benou
Posté le 06-04-2005 à 20:06:30  profilanswer
 

FlorentG a écrit :

Ben la fonction utilisée sous la 1.4 (system.currentTimeMillis) avait une précision de 12ms sous XP, et de 45 ms sous 98 [:alph-one] Bonjour le truc ;)


et tu crois qu'une méthode qui retourne une précision à la nanosecondes y changera quelque chose ? [:petrus75]

n°1038063
benou
Posté le 06-04-2005 à 20:07:15  profilanswer
 
n°1038065
FlorentG
Unité de Masse
Posté le 06-04-2005 à 20:10:06  profilanswer
 

benou a écrit :

et tu crois qu'une méthode qui retourne une précision à la nanosecondes y changera quelque chose ? [:petrus75]


48ms = 20 fps max [:spamafote]  
12ms = 83 fps max (déjà mieux)
 
Si tu veux faire un truc basé sur le temps, c'est important

n°1038066
Moktar1er
No one replies...
Posté le 06-04-2005 à 20:11:02  profilanswer
 


Il faut aussi assurer que la même opération se fera, et systématiquement à chaque appel, toujours dans le même temps. Si mon traitement A prend 12ms, il prendra absolument toujours 12ms, et ce indépendament de la charge de la machine etc.

n°1038067
benou
Posté le 06-04-2005 à 20:13:36  profilanswer
 

FlorentG a écrit :

48ms = 20 fps max [:spamafote]  
12ms = 83 fps max (déjà mieux)
 
Si tu veux faire un truc basé sur le temps, c'est important


j'ai un doute qu'il y ait le moindre lien antre la précision de l'horloge et le nombre de fps que tu peux obtenir, mais passons ...
 
en quoi la nouvelle méthode change quelque chose ?

n°1038071
FlorentG
Unité de Masse
Posté le 06-04-2005 à 20:16:05  profilanswer
 

benou a écrit :

j'ai un doute qu'il y ait le moindre lien antre la précision de l'horloge et le nombre de fps que tu peux obtenir, mais passons ...
 
en quoi la nouvelle méthode change quelque chose ?


Parce qu'il faut genre mettre à jour certaines données du jeu (genre ta position, la position des ennemis, etc..) à intervals réguliers, genre pour avoir une vitesse constante. Et ceci suffisamment pour que ça ne soit pas haché. Donc il te faut une bonne précision sinon problèmes.

n°1038075
benou
Posté le 06-04-2005 à 20:20:22  profilanswer
 

FlorentG a écrit :

Parce qu'il faut genre mettre à jour certaines données du jeu (genre ta position, la position des ennemis, etc..) à intervals réguliers, genre pour avoir une vitesse constante. Et ceci suffisamment pour que ça ne soit pas haché. Donc il te faut une bonne précision sinon problèmes.


ok, mais rien à voir avec le fps, et toujours la même question : tu crois que c'est parce qu'il y a une nouvelle méthode que la précision grandit ?

n°1038080
Lam's
Profil: bas.
Posté le 06-04-2005 à 20:23:57  profilanswer
 

benou a écrit :

et tu crois qu'une méthode qui retourne une précision à la nanosecondes y changera quelque chose ? [:petrus75]


Bah oui. Ca utilise peut-être RDTSC sous x86, ou bien le 8051/8052, ou que sais-je encore...

mood
Publicité
Posté le 06-04-2005 à 20:23:57  profilanswer
 

n°1038081
benou
Posté le 06-04-2005 à 20:24:40  profilanswer
 

Lam's a écrit :

Bah oui. Ca utilise peut-être RDTSC sous x86, ou bien le 8051/8052, ou que sais-je encore...


à vérifier, mais je parierais que ca ne change rien à la précision ...

n°1038082
FlorentG
Unité de Masse
Posté le 06-04-2005 à 20:24:48  profilanswer
 

benou a écrit :

ok, mais rien à voir avec le fps, et toujours la même question : tu crois que c'est parce qu'il y a une nouvelle méthode que la précision grandit ?


J'voulais dire pas au niveau fps fps, mais game-update par secondes [:joce] Sinon oui, la précision a gravement augmenté grâce à ça. Avant, pour la 1.4 soit fallait passer par une classe planquée, non documentée dans la javadoc, mais utilisable, ou alors utiliser des librairies qui passaient par des DLL

n°1038084
benou
Posté le 06-04-2005 à 20:25:33  profilanswer
 

FlorentG a écrit :

J'voulais dire pas au niveau fps fps, mais game-update par secondes [:joce] Sinon oui, la précision a gravement augmenté grâce à ça. Avant, pour la 1.4 soit fallait passer par une classe planquée, non documentée dans la javadoc, mais utilisable, ou alors utiliser des librairies qui passaient par des DLL


genre ? t'as quoi comme précision maintenant ?

n°1038085
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-04-2005 à 20:25:57  profilanswer
 

benou a écrit :

y a un monde entre forte supposition et certitude [:spamafote]


Ben ouais, mais quand tu bosses en mono-tâche (parceque le TR multi-tâche, j'ai jamais vu :D), t'as moins de chances qu'un processeur 8 bits de convertisseur franc-euro mettes plus de 5 secondes à faire une addition, que te prendre un boeing 747 sur l'orteil alors que t'es au 20° sous-sol du CEA.

n°1038086
FlorentG
Unité de Masse
Posté le 06-04-2005 à 20:26:24  profilanswer
 

benou a écrit :

genre ? t'as quoi comme précision maintenant ?


Théoriquement, la nano-seconde. En pratique beaucoup plus, mais c'est toujours mieux que les 48 ms de win98 :)

n°1038088
benou
Posté le 06-04-2005 à 20:29:51  profilanswer
 

FlorentG a écrit :

Théoriquement, la nano-seconde. En pratique beaucoup plus, mais c'est toujours mieux que les 48 ms de win98 :)


c'est plus la pratique qui m'intéressait ;)

n°1038089
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-04-2005 à 20:32:30  profilanswer
 

En pratique, ça dépend totalement du générateur de tick de l'horloge système du PC. Et vu que c'est 100% dépendant de celui-ci... En tout cas, je doute que ce soit pire qu'en VBS, et en VBS c'est 1ms la précision, ce qui est évidement meilleur que les 48ms de la version précédente de java ;)

n°1038092
the real m​oins moins
Posté le 06-04-2005 à 20:38:01  profilanswer
 

Mais bien sur, oui; on sent le gars qui sait de quoi il parle.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1038098
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-04-2005 à 20:49:31  profilanswer
 

Tiens, en effet, c'est 15ms la précision du VBS (m'enfin c'est quand même pas pire que l'anciene version de Java, et c'est pourtant du full interprété :p)
 

Code :
  1. t = timer
  2. s = ""
  3. for i = 0 to 10000
  4. s = s & (timer - t) & vbCrLf
  5. next
  6. set fso = CreateObject("Scripting.FileSystemObject" )
  7. set fil = fso.CreateTextFile("toto.txt", true)
  8. fil.write s
  9. fil.close


Message édité par Arjuna le 06-04-2005 à 20:49:44
n°1038101
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-04-2005 à 20:52:17  profilanswer
 

Sinon, pour ce qui est de la dépendence du générateur de ticks de l'horloge, j'espère quand même que les nouvelles VM Java sont capable d'y faire un accès en direct. Sinon y'a quand même un problème à mon avis...
 
Par contre, vu que la plupart de ces joyeuses puces ne sont cadancées qu'à quelques KHz, la précision reste relativement faible.

n°1038104
Lam's
Profil: bas.
Posté le 06-04-2005 à 20:58:30  profilanswer
 

benou a écrit :

c'est plus la pratique qui m'intéressait ;)


Visiblement, ça utilise QueryPerformanceCounter plutôt que GetTickCount.  
Donc la précision dépendrait alors de l'OS, car Win2K et Win XP ne l'implémentent pas de la même façon:

Citation :


 - PIT on Win2k - 838 ns resolution, slow to read (~3 µs)
 - PMT on WinXP - 279 ns ", moderate overhead (700 ns?)
 - TSC on SMP HAL


n°1038106
Arjuna
Aircraft Ident.: F-MBSD
Posté le 06-04-2005 à 21:02:27  profilanswer
 

J'allais poser une question con...
En fait, la VM ne lit pas directement le générateur de ticks de l'horloge, puisqu'on peut en rajouter une sur bus PCI, comme on en utilise pour certains types d'encryption pour pour faire un serveur de temps. Faudrait voir si sous Windows Java sait en tirer profit d'ailleur :)
 
Par contre, comprends pas comment on peut arriver a une aussi bonne précision. Certes, ma CUV4X-DSL n'est pas toute neuve, mais étant une carte pour serveur (bi-pro et tout), ils ont mentionné la vitesse d'horloge du générateur de ticks de l'horloge système (en indiquant que c'était pour faire du temps réel). Et même si je n'arrive pas à remettre la main dessus, d'après mes souvenirs, ça tournait autour de 13 KHz, donc avec une précision de l'ordre de la dizaine de µs plutôt que de la ns :??:


Message édité par Arjuna le 06-04-2005 à 21:06:48
n°1038109
FlorentG
Unité de Masse
Posté le 06-04-2005 à 21:09:38  profilanswer
 

<hs>'tain t'as une CUV4X :sweat: J'ai le modèle en dessous, la P3V4X, qui s'amuse à merder avec ma GeForce2 :cry: le problème est connu, c'est un défaut qui touche à l'alimentation du bus AGP</hs>

n°1038115
Lam's
Profil: bas.
Posté le 06-04-2005 à 21:15:21  profilanswer
 

Fais un google sur 3579545 ou sur 1193182 qui sont les fréquences respectives des 2 méthodes. C'est effectivement des timers modernes, qui ont l'air de passer via le bus PCI.
 
A noter que jusqu'à présent, on avait les ticks de processeur qui étaient l'arme absolue (puisque aussi précis que le processeur). Malheureusement, sur les Pentium-M/Centrinos et autres laptops, la fréquence du CPU change à l'envie, donc ça donne un très mauvais moyen de mesurer le temps  (et puis ça marche mal avec plusieurs CPU, avec les changements de contexte, et également avec l'Hyperthreading). Bref, ce type de méthode n'est bonne que pour profiler du code.
 

n°1038122
the real m​oins moins
Posté le 06-04-2005 à 21:34:57  profilanswer
 

à l'envi, sans e [:aloy]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1038140
FlorentG
Unité de Masse
Posté le 06-04-2005 à 21:48:04  profilanswer
 

Lam's a écrit :

Fais un google sur 3579545 ou sur 1193182 qui sont les fréquences respectives des 2 méthodes. C'est effectivement des timers modernes, qui ont l'air de passer via le bus PCI.
 
A noter que jusqu'à présent, on avait les ticks de processeur qui étaient l'arme absolue (puisque aussi précis que le processeur). Malheureusement, sur les Pentium-M/Centrinos et autres laptops, la fréquence du CPU change à l'envie, donc ça donne un très mauvais moyen de mesurer le temps  (et puis ça marche mal avec plusieurs CPU, avec les changements de contexte, et également avec l'Hyperthreading). Bref, ce type de méthode n'est bonne que pour profiler du code.


Une des librairie facilitant le dev de jeux en Java (GAGE) a implémenté son propre Timer pour palier au manque de précision quand la 1.5 était pas sortie. Et ça merde effectivement avec les procos HT :/

n°1038471
nraynaud
lol
Posté le 07-04-2005 à 09:50:00  profilanswer
 

trevor a écrit :

il est tout à fait envisageable de faire du temps réel avec java


toi tu es du genre à faire 360°=0° dans tes calculs de robotique ...


---------------
trainoo.com, c'est fini
n°1038474
nraynaud
lol
Posté le 07-04-2005 à 09:53:46  profilanswer
 

Arjuna a écrit :

(parceque le TR multi-tâche, j'ai jamais vu :D


t'as déjà vu une voiture, un avion ou un distributeur de billets ?
 
ben tu as vu du temps-réel multitaches.


---------------
trainoo.com, c'est fini
n°1038477
Lam's
Profil: bas.
Posté le 07-04-2005 à 09:56:07  profilanswer
 

nraynaud a écrit :

t'as déjà vu une voiture, un avion ou un distributeur de billets ?
 
ben tu as vu du temps-réel multitaches.


Y a certains topics sur Discussions aussi... [:petrus75]

n°1038483
nraynaud
lol
Posté le 07-04-2005 à 10:00:25  profilanswer
 

Lam's a écrit :

Fais un google sur 3579545 ou sur 1193182 qui sont les fréquences respectives des 2 méthodes. C'est effectivement des timers modernes, qui ont l'air de passer via le bus PCI.
 
A noter que jusqu'à présent, on avait les ticks de processeur qui étaient l'arme absolue (puisque aussi précis que le processeur). Malheureusement, sur les Pentium-M/Centrinos et autres laptops, la fréquence du CPU change à l'envie, donc ça donne un très mauvais moyen de mesurer le temps  (et puis ça marche mal avec plusieurs CPU, avec les changements de contexte, et également avec l'Hyperthreading). Bref, ce type de méthode n'est bonne que pour profiler du code.


y'a du matos spécial pour mesurer le temps, c'est pas pour rien
 
(encore des gens qui se sont calés sur des invariants pourris)


---------------
trainoo.com, c'est fini
n°1038580
the real m​oins moins
Posté le 07-04-2005 à 11:01:43  profilanswer
 

nraynaud a écrit :

t'as déjà vu une voiture, un avion ou un distributeur de billets ?
 
ben tu as vu du temps-réel multitaches.


en parlant de distributeur de billet, le mien à avalé la carte d'un pote et rebooté 4 fois sous mes yeux. c'est joli, c'est le meme genre de sequence de boot que sur les terminaux que ma mere utilisait à son taf y'a 20 ans [:troa]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1038592
Lam's
Profil: bas.
Posté le 07-04-2005 à 11:05:52  profilanswer
 

the real moins moins a écrit :

en parlant de distributeur de billet, le mien à avalé la carte d'un pote et rebooté 4 fois sous mes yeux. c'est joli, c'est le meme genre de sequence de boot que sur les terminaux que ma mere utilisait à son taf y'a 20 ans [:troa]


Laisse moi deviner: t'habites en Belgique et t'as pas de carte bleue ?

n°1038597
benou
Posté le 07-04-2005 à 11:07:04  profilanswer
 

the real moins moins a écrit :

en parlant de distributeur de billet, le mien à avalé la carte d'un pote et rebooté 4 fois sous mes yeux. c'est joli, c'est le meme genre de sequence de boot que sur les terminaux que ma mere utilisait à son taf y'a 20 ans [:troa]


oublie pas de préciser que t'es en belgique :o

n°1038608
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-04-2005 à 11:10:45  profilanswer
 


IntelliJ c'est mieux


---------------
J'ai un string dans l'array (Paris Hilton)
n°1038614
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-04-2005 à 11:11:56  profilanswer
 

the real moins moins a écrit :

en parlant de distributeur de billet, le mien à avalé la carte d'un pote et rebooté 4 fois sous mes yeux. c'est joli, c'est le meme genre de sequence de boot que sur les terminaux que ma mere utilisait à son taf y'a 20 ans [:troa]


faut signer le ticket une fois le retrait effectué ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1038621
the real m​oins moins
Posté le 07-04-2005 à 11:14:19  profilanswer
 

he merde [:god]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1038629
coffeeman
Posté le 07-04-2005 à 11:17:06  profilanswer
 

Harkonnen a écrit :

faut signer le ticket une fois le retrait effectué ?


 
oui, et le remettre dans le distributeur


---------------
Moi, j'aime pas les signatures - J'écoute actuellement :
n°1038637
noldor
Rockn'roll
Posté le 07-04-2005 à 11:19:03  profilanswer
 

y a un nain qui vérifie que t'as bien signé non ?

n°1038660
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-04-2005 à 11:27:29  profilanswer
 

Arjuna a écrit :

Tiens, en effet, c'est 15ms la précision du VBS (m'enfin c'est quand même pas pire que l'anciene version de Java, et c'est pourtant du full interprété :p)
 

Code :
  1. t = timer
  2. s = ""
  3. for i = 0 to 10000
  4. s = s & (timer - t) & vbCrLf
  5. next
  6. set fso = CreateObject("Scripting.FileSystemObject" )
  7. set fil = fso.CreateTextFile("toto.txt", true)
  8. fil.write s
  9. fil.close



 
En Delphi j'ai aussi 15ms avec GetTickCount, mais avec QueryPerformanceCounter j'ai plusieurs passages de boucles par milliseconde, avec donc une précision à la milliseconde (enfin, faut voir si elle est réelle :D)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1038944
Arjuna
Aircraft Ident.: F-MBSD
Posté le 07-04-2005 à 15:23:28  profilanswer
 

Chais pas si VBS peut accéder à ces machins. On y accède comment ?
Parceqie sii c'est- une API, c'est pas évident, mais si y'a moyen de passer par ailleurs... Tiens, faudra que j'essaie de faire une DLL en VB appelée depuis le VBS pour voir si ça marche et si la précision est meilleures :D
 
(truc bien crade powa j'adore ça :D)

n°1038952
Lam's
Profil: bas.
Posté le 07-04-2005 à 15:26:33  profilanswer
 

Dans Google, tu tapes "QueryPerformanceCounter ", et tu cliques sur "I feel lucky".

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3

Aller à :
Ajouter une réponse
 

Sujets relatifs
application VB.NETOuvrir une application
Killer son applicationOuvrir un fichier pdf depuis une application Java
[Visual .Net] Références Vide sous SmartDevice ApplicationFonction lancer au démarrage d'une application visual c++ .NET
CreateObject("Excel.Application") ne crée pas l'objet !application multi-form en C#, simple mais bloqué..
Developper une application windows....Ancrer une application java
Plus de sujets relatifs à : vitesse application


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR