Accueil > Forum > > > > threads et dlls
threads et dlls
mardi 4 décembre 2007 à 02:25:51 |
threads et dlls

raoulli
|
bonsoir a vous. je me posai une question. j'ai dans un prog plusieurs threads assez virulents. ils sont tous reunient dans un seul exe, et ce prog commence a avoir des deffaillances d'affichage, car je pense trop stressé. un trhead attend la reponse d'un autre qui attend une reponse de la fenetre principale, qui elle meme a crée une autre fenetre. enfin un truc assez bourratif. ma question etait la suivante, et si je mettais ces threads dans plusieurs dll, un gros thread par dll, ceci ne serrais pas mieux ? bonne soirée. bye.
|
|
mardi 4 décembre 2007 à 14:07:15 |
Re : threads et dlls

BruNews
|
Si tu ne prévois pas de réemploi de ces DLLs dans un autre prog, ça ne servira à rien.
ciao... BruNews, MVP VC++
|
|
mardi 4 décembre 2007 à 15:43:18 |
Re : threads et dlls

raoulli
|
Decharger mon prog, de ce stresse. bye.
|
|
mercredi 5 décembre 2007 à 12:42:06 |
Re : threads et dlls

raoulli
|
ok, la question n'a pas été comprise. pas grave, je transfert du code dans cette dll, verra bien. bye.
|
|
mercredi 5 décembre 2007 à 13:25:19 |
Re : threads et dlls

BruNews
|
Mais enfin, je ne vois pas ce que ça arrangerait d'appeler le même code depuis une dll au lieu d'une adresse fixe dans l'exe. Il n'y a rien de bien mystérieux dans cette question.
ciao... BruNews, MVP VC++
|
|
mercredi 5 décembre 2007 à 18:05:32 |
Re : threads et dlls

_dune2_
|
Salut,
attention, je pense qu'il y a là un problème de compréhension ou d'appréhension entre "le code binaire" et "son exécution".
Le fait de dispatcher ton code dans une DLL partage effectivement ton code dans plusieurs fichiers binaires. Mais lors de son exécution, tous les bouts (exe + dlls) sont chargés en mémoire et ne font plus qu'un seul binaire prêt à être exécuté. Et la reflexion de BruNews va dans ce sens, il-y-a en effet aucun avantage en terme d'exécution à utiliser une dll si ce n'est de le partager entre plusieur binaire.
Je passe par un exemple pour illustrer mon explication peut-être un peu confuse :
une fonction "toto()" appelé par "main()"
- binaire Executable contenant "main()" et "toto()" lors de son chargement, "main" et "toto" son chargés en mémoire lors du chargement de l'executable. puis exécution du code main() qui appelle toto()
- binaire executable contenant "main()" + une DLL contenant "toto()" lors du chargement de l'executable, "main" est chargé. A ce moment là, le linker s'aperçoit qu'il lui manque la fonction "toto", il va donc la chercher dans la DLL pour la charger en mémoire à son tour. puis exécution du code main() qui appelle toto()
On voit bien que le fait de déplacer la fonction "toto()" n'a rien changé à l'exécution.
Dans tous les cas, une fois ton programme complet chargé en RAM (que ce soit en une seule fois ou en plusieurs fois via des DLL), son fonctionnement est identique .. ça ne résoudra donc pas tes problèmes de surcharge CPU et engorgements divers ...
Pour résoudre ton problème, plusieurs pistes sont à explorer : 1) donner des priorités différentes à tes threads, de manière à rendre plus réactives celles qui doivent l'être, relégant automatiquement les autres en IDLE 2) mieux réorganiser tes threads de manière à regrouper les traitements entre eux et events entre eux (faire des threads processing qui ont besoin de CPU en prio-low et des threads interactifs qui ont besoin de peu de CPU en prio-high pour les rendre trés réactifs)
Voilà, je pense que ça pourra t'aider.
Gentoo... que du bonheur ...
|
|
jeudi 6 décembre 2007 à 08:49:19 |
Re : threads et dlls

ToutEnMasm
|
Salut, Si le programme manifeste des problèmes d'affichage,cela veut dire que la boucle des messages s'éxécute de manière incorrecte,c'est tout. Il n'y a aucune combine pouvant résoudre ce problème. Poster le code içi permettrait d'y voir plus clair.
|
|
jeudi 6 décembre 2007 à 11:45:23 |
Re : threads et dlls

raoulli
|
salut.
merci. oui _dune2_, j'y avait pas penser, a deffinir les priorités des threads, en fonction de celui qui doit bosser le plus a un certain moment.Je vais faire ca et voir ce que ca donne, mais, ca va resoudre mon probleme je pense.Ils n'ont pas tous besoin de bosser a donf tout le temps.Et je vais virrer les SendMessages, et y mettre des PostMessages, ca serra deja mieux, avec un bool de controle.
Ok, ToutEnMasm, mais ma boucle de messages est tout a fait correcte, sauf que, les threads, prennent plus de priorités par rapport a la boucle de messages de la fenetre principale, elle recupere ce qui lui arrive, et elle ne doit plus recevoir grand chose, avec tout ce stresse, hi.
j'ai un quad-core, je teste, avec ce nouveau prog, ce cpu, ce qu'il est capable de faire, mais, etant nouveau (le cpu), je ne le connait pas assez, pour tirer partie de ces 4 coeurs !!!
encore merci. bonne jounée. bye.
|
|
vendredi 7 décembre 2007 à 11:19:56 |
Re : threads et dlls

ToutEnMasm
|
Salut, Je cite
Ok, ToutEnMasm, mais ma boucle de messages est tout a fait correcte, sauf que, les threads, prennent plus de priorités par rapport a la boucle de messages de la fenetre principale, elle recupere ce qui lui arrive, et elle ne doit plus recevoir grand chose, avec tout ce stresse, hi.
Affirmation gratuite (sans montrer le code ) et quelque peu ignorante du fait que l'on utilise le plus souvent les threads pour permettre à la boucle des messages de se dérouler normalement.
|
|
vendredi 7 décembre 2007 à 16:17:10 |
Re : threads et dlls

raoulli
|
salut, toutenmasm.
je te donne le code, alors, mais tu ne serra pas surpris. c'est du connu, c'est du iczelion, je me sert de template, a chaque fois, pour ce qui est des fenetres. ha, bon, ha, ben j'y ai jamais pensé, de faire un thread pour une boucle de message, j'en vois pas l'utilité, mais, si tu l'dis.
je peut te donner la boucle de dispatch:
*** proc local msg:MSG invoke CreateDialogParamA,hInstance,MINI_RES,NULL,addr ***DlgFunc,NULL
.if eax != NULL mov hInvisibleDlg,eax ;======================================================================= ; MESSAGES LOOP ;======================================================================= .WHILE TRUE invoke GetMessage, addr msg,NULL,0,0 .BREAK .IF (!eax) invoke TranslateMessage, addr msg invoke DispatchMessage, addr msg .ENDW mov eax,msg.wParam .endif ret *** endp
quant au traitement des differents messages: genre WM_********** par ***DlgFunc
c'est trop gros, mais il n'y a aucune latence dedans, enfin j'en ai pas vu. car comme me l'a dit une autre personne, qui inclu des timers pour messurer, les temps a divers endroit de son prog, du genre bootvis, mais perso, et plus simple bien sur, je m'en sert aussi. je vais utiliser, d'autres traitements, enfin, si je trouve une parade, (je vais la trouver), je la poste. merci. bye.
|
|
Cette discussion est classée dans : prog, question, threads, dlls, attend
Répondre à ce message
Sujets en rapport avec ce message
presentation & petite question... [ par BlackWizzard ]
tout d'abord, je suis le co-webmaster de ce site, mais je vous previent, je n'ai que les bases et que la theorie, aucune pratiques!le prob, C que G ja
Une question conne [ par Slashgo ]
Je voudrais juste savoir où quelle(s) logiciels il faut pour dévelloper en assembleur.Gratuit de préférence@+
ptite question [ par comax ]
Voilà, j'ai un pc qui est relativement ancien et son bios ne prend pas les cdrom bootable. Or j'ai un cdrom bootable que j'aimerai bien voir. Je voudr
demander 1 clef avant de lancer l'application [ par badboy7852 ]
Je viens de créer un prog .asm avec MASM32 et j'aimerais que quand je lance mon .exe y ait une fenêtre ki apparaisse en me demandant le mot de passe p
Question de débutant [ par Laurent1313 ]
Voilà je débute avec l'assembleur sous Delphi et il y a un truc que je ne comprends pas. Je voudrais juste savoir quelle est la différence entre :ça :
Question sur Langage PERL [ par marouanito ]
salut à tous,je m'y connais pas trop dans Perl, mais je voulais juste savoir comment on fait sous Perl pour convertir une variable en virgule flottant
Petite question... [ par did2604 ]
Bonsoir,Que signifie exactement la notation crochet en assembleur ? Je m'explique, par exemple : mov cl,[bx], je suppose que ce n'est pas un move ordi
Compilateur C/C++ [ par Bombela ]
Salut !Quand on utilise un compilateur C/C++, il est livré avec ses bibliothèque. Maintenant, imaginez que je fasse un os (imaginez seulement), les ro
Programme désassemblé ! [ par pierre63 ]
Bonjour,Voia, j'avais fait un prog en vb que j'avais compilé donc j'ai un setup puis je l'install c me donne un .exe !Probleme j'ai perdu la source de
Question Asm/C++ [ par Lelys ]
Bonjour,Je voudrai faire un OS, mais le problème c'est que je ne m'en sort pas en ASM...Je suis plus allese en C/C++.Mais le problème est que les syst
Livres en rapport
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|