2009-09-08 7 views
1

Mon logiciel utilise intensément COM. C'est très, très lent. Y a-t-il un truc pour accélérer la communication COM?Y at-il un moyen d'accélérer COM?

+1

Vous devez fournir plus de détails - dans quoi le client et le serveur sont-ils écrits, le serveur est-il un .exe ou un .dll, comment exactement vous remarquez qu'il est déraisonnablement lent. – sharptooth

Répondre

2

Si ce n'est déjà fait, exécutez le composant in-process plutôt que dans un processus serveur distinct (dllhost.exe).

+0

Kieveli: Dépend de l'environnement spécifique. Au niveau de l'API, vous choisissez le contexte de création d'un objet COM en transmettant l'argument approprié au paramètre context de la fonction CoCreateInstance. –

+0

Qu'est-ce que cela signifie? Désolé, je suis un peu vert quand il s'agit de ce genre de choses. – max

+1

max: C'est probablement ce que vous faites déjà. Vous devriez ajouter un peu plus de contexte à votre question pour une réponse plus utile (ou vous pouvez poser une autre question sur l'optimisation de votre situation spécifique plutôt que sur une question plus large). En attendant, vous pouvez voir http://msdn.microsoft.com/en-us/library/ms693716(VS.85).aspx pour les différentes options (process-wise) que vous avez lorsque vous créez un objet COM. –

1

Exécutez un outil de profilage pour mesurer exactement ce qui cause la lenteur du système. COM peut sembler être une bonne pluie à blâmer, mais parfois la lenteur est causée par des choses auxquelles on ne s'attend pas. Ce n'est pas toujours la pièce que vous comprenez le moins qui cause des problèmes.

Une fois que l'ensemble de l'application était lent à cause d'une implémentation de chaîne personnalisée qui était utilisée. L'utilisation du profileur a sauvé la journée.

Questions connexes