IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Problème de priorité de thread


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut Problème de priorité de thread
    Bonjour a tous, je travaille sur un logiciel de de type VNC. Lorsqu'un client se connecte au serveur la fentre principale de celui-ci se minimize pour éviter de la voire dans la capture d'écran. Le probleme c'est qu'en faisant cela mon frame rate chute de maniere dramatique a 10fps, alors qu'il tourne a 35/40 fps lorsque la fenetre (Form) du serveur est active. J'ai essayé de forcer la priorité du thread de capture d'écran a une priorité maximale mais rien n'y fait. Avez vous une idée pour remédier a ce petit soucis.

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut Complénment d'information
    J'ai essayé de reduire le champs de mes investiguations, j'ai donc developpé une appli avec le strict minimum:
    1er test (dans un thread)
    - capture d'écran, taille de la capture hard codée 1024 x 768
    - comparaison avec la capture précédente
    - envoie au client de la différence entre les 2 captures
    Résultat => 10 a 12 fps

    2eme test (dans un thread)
    - capture d'écran mais la taille de la capture est déterminée par une "Form", (ce qui permet facilement de donner la possibilité de choisir la taille et l'endroit de la capture) Pour que je puisse comparer la taille de la fenetre est la meme que pour le test 1, a savoir 1024x768
    - comparaison avec la capture précédente
    - envoie au client de la différence entre les 2 captures
    Résultat => 20 a 22fps
    Ce qui est curieux c'est que si je minimize la "Form" je retombe a 12fps !! C'est incompréhensible car cette forme n'est utilisée que pour définir au début la taille de la capture mais il semble que pour une raison inconnue j'ai de bien meilleurs perfs lorsque celle ci est affichée ou quand elle n'exite pas, cas n1 ou la taille est hard codée...

    Avez vous une idée de ce que qui peut expliquer ce phénomène ?

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    quelle version de Delphi ? comment gères-tu tes thread ? utilises-tu synchronize ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut
    Bonjour,

    J'utilise delphi 2010, il y a juste un Thread qui:
    1- fait une capture d'écran
    2- compare avec la capture précédente et extrait la différence
    3- envoie au client la nouvelle image

    je n'affiche rien sur le serveur.

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    d'après ton énoncé la seule différence est que le Thread exploite un TForm pour connaître les dimensions de la capture ? c'est ça ?

    et tu récupères les dimensions directement de Tform.Width et Height ?

    dans ce cas essaie en déclarant FWidth, FHeight: Integer dont la valeur est déterminée dans le OnResize de la fiche. Du coup le thread lit directement ces valeurs sans passer par le composant et ce qu'il y a derrière (je sais pas trop si ça va jusque l'API Windows).
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Par défaut
    Merci pour le conseil je vais essayer.
    Si cela vous intéresse j'ai posté le "job" sur vworker (RentACoder) avec la source du server et le client car cela dépasse largement mes compétances.
    http://www.vworker.com/RentACoder/mi...20113305170118

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de priorité des threads
    Par wauant dans le forum C
    Réponses: 4
    Dernier message: 18/04/2007, 08h51
  2. problème de priorité des threads
    Par wauant dans le forum Développement
    Réponses: 1
    Dernier message: 12/04/2007, 10h49
  3. Problème de création de thread
    Par [Silk] dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2006, 21h58
  4. [Postgres 8]Problème de priorité des requètes
    Par julienOriano dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 28/12/2005, 12h36
  5. Problème de creation de thread sous linux
    Par xilebo dans le forum POSIX
    Réponses: 4
    Dernier message: 27/10/2004, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo