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
» bouton dans autre form que 0
Tick_Count pour recherche de ralentissement Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
Tick_Count pour recherche de ralentissement Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
Tick_Count pour recherche de ralentissement Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
Tick_Count pour recherche de ralentissement Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Tick_Count pour recherche de ralentissement Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

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

» trop de fichiers en cours
Tick_Count pour recherche de ralentissement Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Tick_Count pour recherche de ralentissement Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Tick_Count pour recherche de ralentissement Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Tick_Count pour recherche de ralentissement Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Tick_Count pour recherche de ralentissement Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Tick_Count pour recherche de ralentissement Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Tick_Count pour recherche de ralentissement Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Tick_Count pour recherche de ralentissement Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Tick_Count pour recherche de ralentissement Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
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 : 12289
Age : 74
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 : 7002
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 : 7002
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 : 8610
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 : 12289
Age : 74
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 : 7002
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 : 8610
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 : 12289
Age : 74
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 : 12289
Age : 74
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 : 7002
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 : 12289
Age : 74
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: