FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Tick_Count pour recherche de ralentissement Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Tick_Count pour recherche de ralentissement Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Tick_Count pour recherche de ralentissement Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Tick_Count pour recherche de ralentissement Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Tick_Count pour recherche de ralentissement Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Tick_Count pour recherche de ralentissement Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Tick_Count pour recherche de ralentissement Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Tick_Count pour recherche de ralentissement Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Tick_Count pour recherche de ralentissement Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Tick_Count pour recherche de ralentissement Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Tick_Count pour recherche de ralentissement Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Tick_Count pour recherche de ralentissement Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Tick_Count pour recherche de ralentissement Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Tick_Count pour recherche de ralentissement Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Tick_Count pour recherche de ralentissement Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-55%
Le deal à ne pas rater :
Coffret d’outils – STANLEY – STMT0-74101 – 38 pièces – ...
21.99 € 49.04 €
Voir le deal

 

 Tick_Count pour recherche de ralentissement

Aller en bas 
+5
papydall
The Gamer
Klaus
jimx78
silverman
9 participants
AuteurMessage
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyMer 29 Avr 2015 - 22:00

Bonjour jack,

ce serait pratique d'intégrer la fonction "GetTickCount" du kernel32 pour rechercher les sources de ralentissements dans nos programmes, afin de mieux les optimiser.
L'autre avantage c'est de garder "dll_on" disponible car on ne peux utiliser qu'une dll en continu.
Revenir en haut Aller en bas
jimx78

jimx78


Nombre de messages : 241
Age : 32
Localisation : Yvelines
Date d'inscription : 24/05/2010

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyMer 29 Avr 2015 - 22:57

Pour moi, tu parle en chinois lol

Tu travail dans l'informatique ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyMer 29 Avr 2015 - 23:39

@Silverman:
Je pourrais aisément rendre la fonction GetTickCount accessible dans KGF.dll. Mais je pense que ce n'est pas ce que tu cherchesn n'est-ce pas ? Tu veux garder une autre DLL ouverte et accéder à cette fonction en Panoramic pur... Si tel est le cas, je ne peux rien pour toi. Sinon - il suffit de demander...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
The Gamer

The Gamer


Nombre de messages : 110
Age : 30
Localisation : Toulouse (31)
Date d'inscription : 11/05/2010

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyMer 29 Avr 2015 - 23:56

Un peu Hors Sujet mais voici l'info qui répond a la question de Jim78 Tick Count

Tu es pas le seul inculte : moi aussi ! Je connaissais pas cette fonction DLL mais pourrait me servir pour mon code 3D (calcul FPS).

Je referme la parenthèse.
Revenir en haut Aller en bas
http://pierrehardy.pagesperso-orange.fr/
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 1:50

Voici comment utiliser GetTickCount de la kernel32.dll.
Je parle Panoramic, non Chinois!

Code:

' Déterminer le nombre de millisecondes écoulées depuis le démarrage du système.
dim tick%
dll_on "kernel32.dll"
tick% = dll_call0("GetTickCount")
message "Il s'est écoulé : " + str$(tick%) + " ms depuis le démarrage du PC"


Dernière édition par papydall le Jeu 30 Avr 2015 - 2:03, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 2:02

Voici une petite application de GetTickCount.

Code:
' Déterminer le temps en millisecondes pour effectuer un traitement quelconque.
dim t1%,t2%,i,n
dll_on "kernel32.dll"
t1% = dll_call0("GetTickCount")
' Comme exemple : on va déterminer le temps mis pour faire une boucle
for i = 1 to 10000
    n = n + 1
next i
t2% = dll_call0("GetTickCount")
message "Le traitement de la boucle a nécessité un temps de : " + str$(t2%-t1%) + " ms"
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Tick_Count pour recherche de ralentissement Empty
MessageSujet: re   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 2:08

La question va peut être paraître idiote mais
pourquoi vous ne vous servez pas de la fonction de kgf
qui permet justement l' utilisation de plusieurs dlls ?....
Wink
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 2:16

Très bonne question, Ygeronimi !

On ouvre KGF.dll avec DLL_ON - ce sera la seule DLL connue du programme.

Avec les fonctions appropriées, on "cible" une autre dll. Celle-ci sera ouverte à l'insu de Panoramic, mais parfaitement accessible.

Avec d'autres fonctions de KGF.dll, on "sélectionne" une fonction de l'autre DLL, puis on l'appelle avec ses paramètres.

Cette technique peut être utilisée pour accéder USER32.dll en même temps que KGF.dll, mais en réalité, cela s'applique à n'importe quelle DLL.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 2:35

Je ne savais pas que KGF.DLL permet la gestion de plusieurs DLL. Embarassed

@ Klaus

Et si tu nous crées une DLL contenant uniquement la fonction pour gérer plusieurs DLL.
Ça s’appellera peut-être Multi_DLL.dll Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Tick_Count pour recherche de ralentissement Empty
MessageSujet: re   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 2:35

Je le fais quand j' en ai besoin même si c' est rare.
Dans le cas des jeux 3d cela peut s' avérer très utile.
Laughing
Tick_Count pour recherche de ralentissement Captur10
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 2:53

Voici un code pour appeler GetTickCount à partir de KGF.dll.

Pour la démo, j'essaie d'abord dans USER32.dll, je reconnais qu'elle n'y est pas, alors j'essaie avec Kernel32.dll, et là, ça marche. Cela montre les 4 phases:
1. chargement de la DLL
2. ciblage de la fonction
3. appel de la fonction
4. déchargement de la DLL

Pour info: on peut ouvrir simultanément autant de DLLs qu'on veut, dans la limite de la mémoire disponible de l'ordinateur...

Voici la démo:
Code:
' utilisation_USER32_par_KGF.bas

dim KGF$            : KGF$          = "KGF.dll"
dim USER32$        : USER32$      = "C:\Windows\System32\USER32.dll"
dim Kernel32$      : Kernel32$    = "C:\Windows\System32\Kernel32.dll"
dim GetTickCount$  : GetTickCount$ = "GetTickCount"

dim res%, tickcount%, hnd_user32%, hnd_kernel32%

dll_on "KGF.dll"

' on charge USER32.dll
hnd_user32% = dll_call1("LoadDLL",adr(USER32$))

' on cible la fonction GetTickCount dans USER32.dll (elle n'y est pas !)
res% = dll_call2("TargetDLL",hnd_user32%,adr(GetTickCount$))
if res%=0 then message "Fonction "+GetTickCount$+" est inaccessible dans USER32.dll"
' on décharge la DLL
res% = dll_call1("UnLoadDLL",hnd_user32%)

' on charge Kernel32.dll
hnd_kernel32% = dll_call1("LoadDLL",adr(Kernel32$))

' on cible la fonction GetTickCount dans Kernel32.dll (elle y est !)
res% = dll_call2("TargetDLL",hnd_kernel32%,adr(GetTickCount$))
if res%=0
  message "Fonction "+GetTickCount$+" est inaccessible dans Kernel32.dll"
  ' on décharge la DLL
else

  ' on appelle la fonction (elle n'a pas de paramètres)
  tickcount% = dll_call0("CallDLL0")

  message "tickcount = "+str$(tickcount%)
 
end_if

' on décharge la DLL
res% = dll_call1("UnLoadDLL",hnd_kernel32%)

end

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jimx78

jimx78


Nombre de messages : 241
Age : 32
Localisation : Yvelines
Date d'inscription : 24/05/2010

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 6:30

Merci, mais si je comprend bien, on peux utiliser s'une seul dll a la foi.

Si on fait notre jeu 3D, on utilise deja une dll avec la souris.

Edit : a non, une dll multi dll...
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 7:45

Très intéressant cette info sur ta DLL Klaus !

Je ne savais pas qu'il y avait une telle fonction dans KGF.
Cela va me servir dans un programme ou je jongle avec plusieurs DLL.

Merci. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
jean_debord

jean_debord


Nombre de messages : 1250
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 9:28

Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 10:05

Merci, jean_debord ! Smile Smile Smile

Je réaffirme:
1. on peut charger simultanément autant de DLLs qu'on veut
2. pour cela, il suffit de les charger avec LoadDLL et de conserver la handle retournée dans une variable par DLL
3. avant d'utiliser une fonction d'une de ces DLLs chargées, il faut cibler la fonction par TargetDLL, en spécifiant le handle de la DLL choisie
4. on peut appeler ensuite la fonction ciblée par une des fonctions CallDLL0,...,CallDLL6 (en fonction du nombre de paramètres), et ce autant de fois qu'on veut
5. lorsqu'on veut appeler une autre fonction, il faut repasser par le point (3)
6. lorsqu'une DLL chargée n'est plus nécessaire, il faut la décharger par UnLoadDLL

Voilà. C'est vrai - cela représente une certaine "gymnastique". Mais ça marche parfaitement, Panoramic n'y voit que du feu, et plusieurs DLLs peuvent être utilisées smultanément.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 14:13

Citation :
 C'est vrai - cela représente une certaine "gymnastique".

Quand on a bien compris comment doit-on s’y prendre,(et merci Klaus tu l’as très bien expliqué)  la gymnastique deviendra une partie de plaisir : c’est du (re) confort ! cheers
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 16:30

Bonjour,
Je me suis permis de reprendre le programme de Klaus pour bien montrer que ce n'est pas une DLL après l'autre... Tick_Count pour recherche de ralentissement 07
Code:

dim KGF$            : KGF$          = "C:\Langages\Panoramic\DLL\KGF\KGF.dll"
dim USER32$        : USER32$        = "C:\Windows\System32\USER32.dll"
dim Kernel32$      : Kernel32$      = "C:\Windows\System32\Kernel32.dll"
dim GetTickCount$  : GetTickCount$  = "GetTickCount"  : ' KERNEL32.DLL
dim GetSystemMenu$  : GetSystemMenu$ = "GetSystemMenu" : ' USER32.DLL
dim DeleteMenu$    : DeleteMenu$    = "DeleteMenu"    : ' USER32.DLL

' Quelques constantes
dim TITRE$ : TITRE$="Exemple d'appel de DLL à l'aide de KGF"
dim SC_CLOSE%: SC_CLOSE% = 6
dim MF_BYPOSITION% : MF_BYPOSITION% = HEX("400")
CAPTION 0,TITRE$

DIM hmenu%
dim buffer$:buffer$=STRING$(30," ")

dim res%, tickcount%, hnd_user32%, hnd_kernel32%

dll_on KGF$
hnd_user32% = dll_call1("LoadDLL",adr(USER32$)) : ' on charge USER32.dll
hnd_kernel32% = dll_call1("LoadDLL",adr(Kernel32$)) : ' on charge Kernel32.dll

' Un appel à une fonction native de KGF
res% = DLL_call1("KGFdllVersion", adr(buffer$) )
APPLICATION_TITLE "KGF: KGFdllVersion "
message "Version : "+buffer$

' on test existence de la fonction GetSystemMenu dans USER32
res%=DLL_CALL2("TargetDLL",hnd_user32%,adr(GetSystemMenu$))
if res%=0
  message "Fonction "+GetSystemMenu$+" est inaccessible dans user32.dll"
else
  APPLICATION_TITLE "USER32: GetSystemMenu+DeleteMenu "
  MESSAGE "on va désactiver le bouton de fermeture de la fenêtre"
  ' on appelle la fct definie dansTargetDLL (USER32:GetSystemMenu)
  hmenu% = DLL_CALL2("CallDLL2",HANDLE_FORM(TITRE$),0)
  ' puis appel à la fct USER32:DeleteMenu
  res% = DLL_CALL2("TargetDLL",hnd_user32%,adr(DeleteMenu$))
  res% = DLL_CALL3("CallDLL3",hmenu%,SC_CLOSE%,MF_BYPOSITION%)
  MESSAGE "Le bouton de fermeture est desactivé.                "
 
end_if

APPLICATION_TITLE "KERNEL32: GetTickCount"
' on cible la fonction GetTickCount dans Kernel32.dll (elle y est !)
res% = dll_call2("TargetDLL",hnd_kernel32%,adr(GetTickCount$))
if res%=0
  message "Fonction "+GetTickCount$+" est inaccessible dans Kernel32.dll"
else
  ' on appelle la fonction (elle n'a pas de paramètres)
  tickcount% = dll_call0("CallDLL0")
  message "KERNEL32: GetTickCount = "+str$(tickcount%)+"                    "
end_if

' on décharge les DLL
res% = dll_call1("UnLoadDLL",hnd_kernel32%)
res% = dll_call1("UnLoadDLL",hnd_user32%)
DLL_OFF
' un petit terminate pour ne pas vous entendre gueuler... ;-)
' Vous avez eu peur, hein ?
TERMINATE
end

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 18:09

Bien vu, Nardo ! Cela montre parfaitement le principe.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement EmptyJeu 30 Avr 2015 - 21:18

Pour clore le hors sujet:

j'ai fait cette demande car panoramic à pour vocation d'être simple à utiliser.
Bien sûr, il y a moyen de contourner ce manque pour les connaisseurs(*), mais tous le monde ne connait pas cette fonction du kernel32. C'est une petite fonction qui ne me semble pas difficile à intégrer et qui serait vraiment utile.

(*):Merci à klaus pour cette excellente DLL "DynamicallyLoadDLL" et, à jean_debord de l'avoir fait connaitre.
Revenir en haut Aller en bas
Contenu sponsorisé





Tick_Count pour recherche de ralentissement Empty
MessageSujet: Re: Tick_Count pour recherche de ralentissement   Tick_Count pour recherche de ralentissement Empty

Revenir en haut Aller en bas
 
Tick_Count pour recherche de ralentissement
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Astuce pour la recherche sur le forum...
» Recherche de média dans Heredis 12 pour les génealogistes
» ralentissement de kgf
» Probleme de ralentissement sur le forum
» Aide-mémoire des mots-clés Panoramic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: