Domanda

Il nostro programma consuma un server COM out-process e fa migliaia di chiamate su sue interfacce. Questo richiede molto tempo molto lungo - come un minuto per circa 50k chiamate. Il fornitore componente COM dice che le chiamate sono molto veloci da soli e che il problema è nella overhead associato con chiamate out-proc.

C'è qualcosa che può essere regolato per ridurre l'overhead in questi casi?

È stato utile?

Soluzione

Io davvero non credo ci sia molto che può essere fatto senza un aiuto da parte del fornitore. Dal momento che per sua natura un oggetto COM out-of-process c'è bisogno di molto di più di smistamento ecc rispetto ad uno in-process.

Ci sono due opzioni possibili se è possibile ottenere il venditore per aiutare.

  1. Chiedete loro di fornire una versione in-process (DLL) che è quindi possibile ospitare in COM + e generare più istanze (se del caso) e potrebbe aiutare.
  2. Fare come suggerito da BAsilevs e chiedere loro di aggiornare l'API in modo da poter effettuare meno chiamate riducendo così il traffico.

La cosa principale per salvare il tipo di traffico che si sta tallking circa si COM +, ma questo cant essere utilizzato con un oggetto COM out-of-process.

Altri suggerimenti

Cercare un modo per ridurre un certo numero di chiamate. Ad esempio, se l'interfaccia consente, si potrebbe considerare di sostituire il codice come:

for a in c..d { array[a]=obj.get(a) }

con:

obj.getArray(array)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top