|
Mesurer temps d'execution WINDEV 7.5 |
|
Anonyme
|
Bonjour , Je travaille avec Windev 7.5. Je voulais savoir si il existe des outils disponibles ou des fonctions pour mesurer les temps d'executions qu'on passe dans chaque fonction ( dans un but d'optimisation)
PS : je ne souhaite pas passer directement par l'API windows (QueryPerformance...)
Contribution le : 16/08/2004 11:22
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Developpeur WDF
Inscrit: 26/07/2004 09:01
Post(s): 127
|
Bonjour, pourquoi ne pas utiliser les fonctions HeureSys(), HeureDifférence(), etc ? Voir "Gestion des dates et des heures"
Contribution le : 16/08/2004 11:41
|
_________________
Faut pas trop se prendre au sérieux ...
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
DSI WDF
Inscrit: 05/05/2004 13:46
Post(s): 314
|
Teste ceci Projet->Analyseur de performances
Contribution le : 16/08/2004 13:46
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Utilisateur WDF
Inscrit: 09/06/2004 09:31
Post(s): 78
|
Citation : ca n'existe pas. Il est précisé Windev 7.5!!! Quand à la mesure avec heuresys() ca peut etre une idée , mais alors la les mesures vont etre a moitié fausse(aucune précision) Il va comptabiliser l'execution de heuredifference qui doit etre hyper couteuse en windev
Contribution le : 16/08/2004 13:55
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Animateur WDF
Inscrit: 17/05/2004 14:21
Post(s): 382
|
Bonjour HeureA = heuresys()
// TRAITEMENT
HeureB = heuresys()
info(heuredifference(heurea,heureb)
L'execution de heuredifference n'est pas comptabilisée. Mickael
Contribution le : 19/08/2004 11:37
|
_________________
Mbsl
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Utilisateur WDF
Inscrit: 09/06/2004 09:31
Post(s): 78
|
Citation : L'execution de heuredifference n'est pas comptabilisée On peut savoir d'ou tu tiens cette information ?
Contribution le : 30/08/2004 09:47
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour,
t1 est une Heure
t2 est une Heure
d1 est une Durée
t1 = HeureSys()
//Traitement
t2 = HeureSys()
d1 = t2 -t1
"Temps d'exécution : " + d1..Minute+"m"+d1..Seconde+"s"+d1..Milliseconde+"c"
Comme ceci vous pourrez récupérer le temps d'exécution
Contribution le : 30/08/2004 10:54
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Anonyme
|
Citation : Bonjour,t1 est une Heuret2 est une Heured1 est une Duréet1 = HeureSys()//Traitementt2 = HeureSys()d1 = t2 -t1"Temps d'exécution : " +d1..Minute+"m"+d1..Seconde+"s"+d1..Milliseconde+"c" je vais essayé d'expliquer pourquoi cette solution ne me convient pas. Si le traitement que je fais est relativement long il se passe que mon processus risque d'etre preempté plusieurs fois. Ce qui fais que au final je vais compatibilser ce temps la qui ne m'interesse pas.
Contribution le : 30/08/2004 12:40
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Anonyme
|
donc y'a aucune précision c'est meme bourrin de compter le temps d'execution comme ça.
Si je lance mon prog avec un traitement long et que je lance un autre prog a coté qui bouffe grave de la ressource cpu ca veut dire que je vais compter le temps de l'aotre prog + le mien c n'importe quoi
C'est sur que si on fait 10 lignes de code...
Contribution le : 01/09/2004 09:49
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Anonyme
|
Bonjour, J'ai du mal à comprendre pourquoi développer en 7.5 aujourd'hui, alors que la 8 n'est qu'une 7.5 améliorée avec des trucs en plus, dont justement un module d'analyse de temps passé dans le code qui vaut à lui seul la mise à jour!!! A l'aide de ce module, on sait o^passe le temps dans le code, et ça aide, ça aide... Pareil, y'a un autre module qui indique les clés composées manquantes pour les requêtes, et ça aide aussi !!!
Contribution le : 02/09/2004 12:15
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Developpeur WDF
Inscrit: 26/07/2004 09:01
Post(s): 127
|
euh ben pour repondre au dernier anonyme, c pas tjs evident de motiver celui qui tient le budget.
Sinon, pour l'initiateur du post, il y a une procedure qui liste les processus, et par la meme occasion certaines informations qui sont liées. Je me disais qu'on doit pouvoir accéder au temps UC, visible ds le gestionnaire des tâches. C je crois une piste qui devrait te convenir.
Bon courage, et sois moins acerbe qd meme.
Contribution le : 02/09/2004 15:05
|
_________________
Faut pas trop se prendre au sérieux ...
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Anonyme
|
Bonjour ,
Au sujet de la version 8 on compte y passer bientot c'est vrai que il y a un module analyse performance ca peut aider enfin...
Sinon oui il y a moyen de recuperer les temps exacts facturé en mode kernel et en mode user avec l'api windows ( queryperformance...)
Mais je pensais que cette derniere serait encapsulé dans une procédure windev qui permettrait un usage plus simple.
A priori avec la version 7.5 cela n'est pas possible avec les fonctions standard , obligé de passer par l'api win.
Contribution le : 03/09/2004 11:06
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Anonyme
|
Y'a un truc que je comprends pas. C'est une manie ici de donner des réponses ou des liens qui sont hors sujet ? C'est fais pour faire joli ?
Le lien que tu m'as donné n'a rien a voir avec la mesure du temps d'execution.
C'est vraiment pas la peine de repondre dans ce cas la quand on sait pas.
Contribution le : 03/09/2004 13:28
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, C'est aussi une manie de poster en anonyme ici et ce n'est pas pour cela que l'on a une quelconque animosité envers les anonymes, s?enregistrer c'est gratuit, plus convivial et cela n'engage en rien. voir les règles d'utilisationLes gens qui répondent à ce forum prennent du temps pour répondre, certains effectue des recherches, font des tests, certes cela n'est pas toujours ce que l'on attend, mais souvent à la hauteur des questions postées, Nous ne pouvons deviner vos besoins si vous ne l'exprimé pas correctement non plus. Même si certains répondent à coté, au moins ils essaient, car apparemment ailleurs vous n'avez pas non plus de réponse, cela est dommage vous seriez peut-être moins irrité de trouver une solution à votre problème. Evitons donc toutes animosités. Citation : Ce n'est vraiment pas la peine de répondre dans ce cas la quand on sait pas
A moi aussi il m'arrive de répondre à coté, et si on répondait que lorsque l'on est sûr ce site ne serait pas aussi actif. [modérateur] Ne décourageons donc pas le peu de personnes qui tentent d?apporter leurs contributions car ce genre de post n'encourage pas du tout à répondre. [/modérateur]
Contribution le : 05/09/2004 09:59
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Developpeur WDF
Inscrit: 26/07/2004 09:01
Post(s): 127
|
Euh ouai t sympa toi c cool si je me souviens bien le tps UC c ce qui se rapproche le plus de ce que tu veux non? bon ehbien debrouille toi je v pas tout expliquer liste des processus, tu trouves ton appli, tu recupere le tps uc au moment ou t'en as besoin, c pas un tps d'execution ça? non? ah c juste le tps processeur, c pa exactement ce ke tu veux? eh ben au lieu de raler, cherche, tu gagneras du tps. le code que g donné en lien je l'ai utilisé pour autre chose que lister les processus, je l'ai: ADAPTÉ. t'as une cervelle? oui? ben sers-t-en Non ben recycle-toi, ce sera mieux.
Et au lieu de dire c pas ca en t'enervant, expliques, ce sera plus constructif, et plus agreable.
Bon allez amuse toi bien
Contribution le : 06/09/2004 15:30
|
_________________
Faut pas trop se prendre au sérieux ...
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Animateur WDF
Inscrit: 26/06/2002 16:24
De wdforge.org
Post(s): 2822
|
[modérateur et administrateur du site de retour de congès] Attention messieurs ! Voici que je retrouve des dérapages oratoires. Soit que certain ne comprennent pas que gratuité de service n'implique obligation de résultat, soit que le respect soit d'un autre temps... [/modérateur] Le problème posé n'est pas aussi simple que la question semble l'être... La méthode heuresys et le delta calculé à posteriori est valable avec un seul procédé actif. En effet, les temps de heuresys peuvent être mesuré et décomptés. Pour le reste, il faut creuser dans WinDows... et ses api (désolé) de manière à trouver une solution sur le voie du temps CPU indiqué justement par veDengaG. piste 1Piste 2 pour VC++ et donc via dll = mesure en tic processeur (utile et d'une précision ultime) bon courage et ne pas hésiter à nous retourner le résultat de vos investigation, cela sera constructif.
Contribution le : 06/09/2004 16:47
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Anonyme
|
Voila le lien que vous m'avez donné comme l'indique le titre ca sert a lister les proc qui tourne donc rien a voir avec le temps d'execution d'un thread!!! Suffit de connaitre un peu l'api windows pour s'en rendre compte de suite... Citation : Voici un bout de code trouver il y a longtemps sur internetProcédure ProcesNT()// Liste des process et modules sous NT// Ce module pour fonctionner correctement doit être lancer dans une// fenêtre disposant d'une table 'TABLE1' composer de 5 colonnes// id numérique entier (index dans la liste)// cProcessID texte// cProcessName texte// cModuleName texte// cPathName texte// Un interrupteur 'INTMODULE' permet de n'afficher// que les process (INTMODULE=0)// ou les process et modules correspondants (INTMODULE=1)//LOCAL idTabProcess est un tableau de 200 entiers longs Cb est un entier long=800 // taille en octets du tableau idTabProcess CbNeeded est un entier long NumElements est un entier long hTabModule est un tableau de 200 entiers longs Cb2 est un entier long=800 // taille en octets du tableau hTabModule CbNeeded2 est un entier long NumModules est un entier long Pname est une chaine FileName est une chaine fixe sur 260 BaseName est une chaine fixe sur 260 nSize est un entier long=260 // taille de FileName et BaseName lret,l1,l2 est un entier long hProcess est un entier long i,i2 est un entier long NumDll est un entier longNumDll=chargedll('PSAPI.DLL')si NumDll=0 alors erreur('La dll PSAPI n'a pas été chargée') renvoyer fauxfin//// The EnumProcesses function retrieves the process identifier// for each process object in the system.//// BOOL EnumProcesses(// DWORD * lpidProcess, // array to receive the process identifiers// DWORD cb, // size of the array// DWORD * cbNeeded // receives the number of bytes returned// );Lret=appeldll32('PSAPI.DLL','EnumProcesses',&idTabProcess,Cb,&CbNeeded)NumElements=CbNeeded/4 // Taille renvoyée divisée par la taille d'unentier long (4 octets)Pour i=1 a NumElements // // The OpenProcess function returns a handle to an existing process object. // // HANDLE OpenProcess( // DWORD dwDesiredAccess, // access flag // BOOL bInheritHandle, // handle inheritance flag // DWORD dwProcessId // process identifier // ); //HProcess=appeldll32('KERNEL32.DLL','OpenProcess',oubinaire(1024,16),0,idTabProcess[i]) si HProcess<>0 alors // On a un processus. On va rechercher ses modules. // // The EnumProcessModules function retrieves a handle for each module // in the specified process. // // BOOL EnumProcessModules( // HANDLE hProcess, // handle to the process // HMODULE * lphModule, // array to receive the module handles // DWORD cb, // size of the array // LPDWORD lpcbNeeded // receives the number of bytes returned // ); // Process_Query_Information=1024 // Process_All_Access=16 //Lret=Appeldll32('PSAPI.DLL','EnumProcessModules',Hprocess,&hTabModule,Cb2,&CbNeeded2) si LRet<>0 alors NumModules=CbNeeded2/4 SI INTMODULE=0 alors NumModules=1 Pour i2=1 a NumModules // The GetModuleBaseName function retrieves the base name of thespecified module. // //DWORD GetModuleBaseName( // HANDLE hProcess, // handle to the process // HMODULE hModule, // handle to the module // LPTSTR lpBaseName, // buffer that receives the base name // DWORD nSize // size of the buffer //); L1=Appeldll32('PSAPI.DLL','GetModuleBaseNameA',HProcess,hTabModule[i2].... ,&BaseName,nSize) SI L1=0 alors BaseName='' Si i2=1 alors Pname=minuscule(BaseName[[1 à L1]]) // // The GetModuleFileNameEx function retrieves the fully qualified path // for the specified module. // // DWORD GetModuleFileNameEx( // HANDLE hProcess, // handle to the process // HMODULE hModule, // handle to the module // LPTSTR lpFilename, // buffer that receives the path // DWORD nSize // size of the buffer // ); //L2=Appeldll32('PSAPI.DLL','GetModuleFileNameExA',HProcess,hTabModule[i2] ... ,&FileName,nSize) Si L2=0 alors FileName='' TABLEAJOUTE('TABLE1',i+i2/1000+TAB+idTabProcess[i]+TAB+PName+... TAB+Minuscule(BaseName[[1 à L1]])+... tab+Minuscule(FileName[[1 a L2]])) fin fin LRet=Appeldll32('KERNEL32.DLL','CloseHandle',HProcess) FINfinsi NumDll<>0 alors dechargedll(NumDll)fin Pas grave. SInon pour le dernier posteur merci mais je connaissais deja ces réponses la , en fait je voulais savoir si windev intégré ce genre de fontion(7.5) a priori non donc a priori je serais forcé de passer par l'api mon but etant de faire du w_l langage std sans passer par l'api win. Sinon bien evidemment que les fonctions heuresys ne sont pas faites pour ça pour la raison que j'ai évoqué plus haut. PS : [MODERE]
Contribution le : 07/09/2004 09:38
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Animateur WDF
Inscrit: 26/06/2002 16:24
De wdforge.org
Post(s): 2822
|
Mea culpa... Il va falloir en passer par l'api que je ne connais effectivement pas (mais je suis curieux). Quid du code C pour exploiter la dll ? ne donne-t il pas l'info voulue ? Dans le cas contraire, je vous invite à faire un tour sur le net sur ce sujet... ou tester wd8
Contribution le : 07/09/2004 09:58
|
|
|
Re: Mesurer temps d'execution WINDEV 7.5 |
|
Developpeur WDF
Inscrit: 26/07/2004 09:01
Post(s): 127
|
Bon donc en fait ce que je n'avais pas compris c'est que tu voulais identifier immédiatement l'information qui t'intéressait. De mon point de vue le fait de lister les processus permet, comme on sait quel exe l'on souhaite "mesurer", de recuperer facilement le tps UC. Mais de toute facon il doit bien y avoir un moment où un parcours des processus s'effectue, y a qu'a le faire en assembleur. Sinon je tiens a préciser qd même que la signature, c'est à prendre en compte sérieusement pour tous mes messages. PS: euh désolé pour ma réaction agressive, il m'arrive d'être un peu susceptible desfois, comme ça, sans réelle motivation, pour le plaisir koi, ben comme tout le monde, non? PS2:bon aussi je suis un peu cynique? Ah oui? En tout cas bonne chance, g cherché, et g pas trouvé ce que tu voulais précisément, dommage pasque c intéressant comme truc.
Contribution le : 07/09/2004 11:28
|
_________________
Faut pas trop se prendre au sérieux ...
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|