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

Qt Discussion :

Profile d'un serveur en Qt5


Sujet :

Qt

  1. #1
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut Profile d'un serveur en Qt5
    Bonjour,

    J'ai profilé mon serveur MMORPG fait en Qt, mais je ne suis pas sur d'interpréter correctement les résultats:
    http://files.first-world.info/temp/c...-disconnect.xz
    http://files.first-world.info/temp/c...cubox-i-arm.xz
    http://files.first-world.info/temp/c...select-char.xz
    Qui pourrai me dire ou il passe du temps? Et si c'est dans Qt: comment l'optimiser?
    Mon programme étant catchchallenger-server-cli.
    Le système d'event est t'il en cause? Si oui, est t'il adapté à un serveur ou es moins qu'il l'utilise mal?
    Voila l'organisation générale que j'ai choisi:
    http://catchchallenger.first-world.i...r_architecture
    Chaque objet (client) à des objets pour géré des parties diffiérentes dans 5 threads pour le serveur.

    Cordialement,
    Développeur d'Ultracopier

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Première chose que je peux dire, les développeurs de Qt, conseille cette commande pour faire du callgrind sur Qt : http://alexandre-laurent.developpez....ations/#L4-C-1

    Sinon, n'ayant pas KCacheGrind, vous me proposez quelle alternative pour lire vos fichiers ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Première chose que je peux dire, les développeurs de Qt, conseille cette commande pour faire du callgrind sur Qt : http://alexandre-laurent.developpez....ations/#L4-C-1
    C'est sur, si j'exclut le systéme d'event qui pose des problémes de performances, alors j'ai plus de problème de performance dans mon profile... car mon programme prends en générale < 1% du temps total d’exécution.

    Citation Envoyé par LittleWhite Voir le message
    Sinon, n'ayant pas KCacheGrind, vous me proposez quelle alternative pour lire vos fichiers ?
    Qcachegrind marche trés bien sous windows.
    Développeur d'Ultracopier

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Alternative, sous Linux (Gnome).

    Bah, avez-vous un vrai problème de performances ? (Genre, montée du processus à 100% des ressources CPU, des vrais lags dans la réaction du serveur ... des trucs comme ça. Est-ce en continue, ou avec une montée en charge du nombre de requête ?)
    Sinon, ok, il se peut que vous utilisez mal ou à tort le système signal/slot, même si vous avez l'habitude de Qt, de mémoire. Est-ce du Qt 4 ou 5 ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    C'est du Qt 5, c'est dans le titre.

  6. #6
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Alternative, sous Linux (Gnome).
    Liens entre un shell et une lib? Qt vs GTK... KDE vs Gnome, X11 vs wayland.

    Citation Envoyé par LittleWhite Voir le message
    Bah, avez-vous un vrai problème de performances ? (Genre, montée du processus à 100% des ressources CPU, des vrais lags dans la réaction du serveur ... des trucs comme ça. Est-ce en continue, ou avec une montée en charge du nombre de requête ?)
    C'est en utilisation normal, avec un certains nombres de joueurs (15000+). Le système d'event semble avoir une complexité carré O(n^2).
    En gros il patine à gérer les events plus qu'as exécuter mon code.
    Citation Envoyé par LittleWhite Voir le message
    il se peut que vous utilisez mal ou à tort le système signal/slot
    C'est ce que j'aimerai savoir, voila mes analyses:
    http://catchchallenger.first-world.i...for_conception
    J'ai demander l'avis des devs que je fréquente beaucoup sur Qt-fr, pas de réponse.
    Si le système d'event maintiens un liste de connexion qu'il parcourt pour chaque event, cela explique la complexité exponentiel.
    Si je relit directement mes fonctions (direct call), plus de problème de performance. Le changement de thread à un cout. Mais il le doit pas étre 1000x plus lourds que les traitements déjà lourds de mon applications.
    C'est pour ça que j'ai besoin de savoir précisément ce qu'il ce passe.
    Développeur d'Ultracopier

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Je vois que vous utilisez GCC 4.5, donc aucune fonctionnalité du C++11 et rien des avantages du nouveau mécanisme de signal/slot ? (notamment, les optimisations par le C++11, décriée dans les confs Qt)

    (Désolé, je cherche une alternative de KCacheGrind pour ne pas avoir a installé les X paquets Qt/KDE et désolé encore, j'avais zappé le Qt 5 dans le titre.)

    Après, par rapport à votre page, c'est intéressant. Il y a plusieurs options pour chaque connect, http://qt-project.org/doc/qt-4.8/qt....ctionType-enum
    Ensuite, je me demande si c'est vraiment une bonne idée d'utiliser une telle architecture pour la communication dans le serveur. Je ne doute pas que vous souhaitez séparé chaque bloc logique de votre code, mais il reste que cela n'est peut être pas une bonne idée, car la message queue de Qt est généraliste (elle n'est pas là que pour votre besoin). Donc, je reste dubitatif.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Je vois que vous utilisez GCC 4.5, donc aucune fonctionnalité du C++11 et rien des avantages du nouveau mécanisme de signal/slot ? (notamment, les optimisations par le C++11, décriée dans les confs Qt)
    Dans le 1er bench je ne l'utilisais pas. Hors actuellement j'utilise gcc 4.7 + C++11.

    Citation Envoyé par LittleWhite Voir le message
    (Désolé, je cherche une alternative de KCacheGrind pour ne pas avoir a installé les X paquets Qt/KDE et désolé encore, j'avais zappé le Qt 5 dans le titre.)
    QCacheGrind, c'est une application en standalone, qui marche sous wine.

    Citation Envoyé par LittleWhite Voir le message
    Ensuite, je me demande si c'est vraiment une bonne idée d'utiliser une telle architecture pour la communication dans le serveur. Je ne doute pas que vous souhaitez séparé chaque bloc logique de votre code, mais il reste que cela n'est peut être pas une bonne idée, car la message queue de Qt est généraliste (elle n'est pas là que pour votre besoin). Donc, je reste dubitatif.
    C'est pas que pour la logique, mais aussi pour isoler les codes qui pourrai ralentir (complexité linéaire ou carré, accés au fichier/db).
    C'est justement mon interrogation... mais avant de passé sur autre chose (boost?), j'aimerai savoir si c'est bien ça, et sur quoi je peu passer... (le quel serai adapté avec event + réseau)
    Développeur d'Ultracopier

Discussions similaires

  1. Profiler sur un serveur distant
    Par Ernesto_X dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 08/07/2010, 13h08
  2. Profil itinérant serveur 2003 et Vista pro
    Par epc dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 21/11/2008, 17h03
  3. Profil itinerant et residu d ancien serveur
    Par neuneu1 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 04/04/2008, 21h03
  4. Accès aux profils sous serveur 2003
    Par ripmaster dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 07/02/2008, 21h23
  5. stocker les profils sur le serveur
    Par ptirouquin dans le forum Réseau
    Réponses: 8
    Dernier message: 16/07/2007, 16h32

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