Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 [C++] problème C++ windows Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
findwin
Forumeur occasionnel
Forumeur occasionnel


Post-BTS

Messages: 29

MessagePosté le: Mar 30 Aoû 2005 - 10:43 Répondre en citantRevenir en haut

salut,

Je suis depuis quelques temps confronté à un probleme et je n'arrive pas à mettre le doigt sur la source d'"erreur". J'ai développé recemment un serveur de communication et une bibliothèque cliente basée sur les pipes nommés windows. Le but étant de communiquer en temps réel entre les clients les valeurs de différentes variables dès leur changement.

La problèmatique est que je n'obtiens pas les performances prévues...
En effet le serveur ne réussi à transmettre qu'un message toutes les 30 ms (message et réponse de l'autre client). En regardant le gestionaire de taches, je peux remarquer que le processeur n'est absolument pas sollicité.
Le fait le plus troublant est que si je refais le même test avec une page web en flash ou un exe flash ouvert, les performances sont 10 à 12 fois supérieure!!!

J'ai donc pensé pendant un moment à un ralentissement du à mes traces sur la console (ah oui, les clients et le serveur sont en mode console), en imaginant, que flash pouvait lancer une quelquonque acceleration materielle de l'affichage. Cependant, même en supprimant les traces, le problème persiste. Peut-être est-ce un problème d'ordonnacement? portaant il me semble que mes sections critiques sont protégées au mieux et que les temps de suspension de thread sont minimums...

A titre d'information, les clients ainsi que le serveur sont entièrement développés de manière parallèle:
Le serveur possède 3 threads par client connectés: un qui lit sur le pipe et empile les messages dans une file d'attente, un qui redirige les messages dans la file d'attente d'envoi de message du client destinataire et un qui dépile les messages et les ecrit dans le pipe du destinataire. (architecture classique...)

La bibliothèque possède 2 threads: un qui lit le pipe et empile les messages dans une liste de reception et un qui dépile la liste d'envoi de message et écrit lesdits messages sur le pipe. (classique aussi)

Si une personne a déjà expérimenté ce genre de problème, je suis tout ouie pour les conseils que vous pourriez me donner.

merci d'avance
Yverain.
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mar 30 Aoû 2005 - 17:12 Répondre en citantRevenir en haut

Bon tu connais mon niveau en C++, donc jrisque de te donner des conseils pas tres utiles mais bon, on sait jamais...
T'a essayé d'augementer la priorité de tes Thread ? Peut etre que le CPU est pas tres utilisé parce qu'ils ont une priorité très basse mais qu'ils réalisent beaucoup de calcul.
Pour la comparaison avec l'exe flash est ce que c'etait dans les memes conditions (un code + ou - equvalent) ou tu as juste testé les pipes nommés en flash ?
Sinon j'ai aussi regardé vite fait dans la doc de l'api windows, et j'ai vus qu'il y'avais pas mal de param lors de la création du pipe, est ce que t'a essayé de modifié certains param ? J'ai vu par exemple que tu pouvais faire des pipe bloquant ou le timeout qui pose probleme ?

Et puis si tu a encore des problemes de perf, passe a java c'est beaucoup mieux, t'a autant de probleme de perf mais au moins c'est plus ta faute Laughing

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
findwin
Forumeur occasionnel
Forumeur occasionnel


Post-BTS

Messages: 29

MessagePosté le: Mar 30 Aoû 2005 - 19:50 Répondre en citantRevenir en haut

j'ai essayé de changer les priorités...

en fait je ne communique pas avec flash... c'est comme si le fait d'avoir flash de lancé boostait mon prog Crying or Very sad

pour les pipes, ils sont nickels, j'ai chronométré les temps d'utilisation: 0ms!!!
le problème est vraiment au niveau de l'ordonnancement des threads...
Voir le profil de l'utilisateurEnvoyer un message privé
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mar 30 Aoû 2005 - 21:14 Répondre en citantRevenir en haut

Ah ouai ca m'etonnais aussi qu'on puisse faire des pipes nommées en flash Confused
Par contre c'est bizarre que ca ai un impact sur le fonctionement du prog, surtout si le probleme est due a l'ordonancement des threads, jvois pas trop comment flash pourrait intervenir dessus...

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum