Performance Issues

R

Ram Stern

Hey,
I have a ServicedComponent derived class, with only one method that
uses ESRI objects.
When I run the object in ApplicationActivation set to library I get
greate calltimes, but when I set it to work as Server, my calltime
becomes almost 20 times slower.
When running a .Net object under Com+ as Server activation, I know
there are performance issues because of the creation time of the object
in the Com+, but even though, the differences shouldnt be so immense...
What could make the performance differences so big (20 times slower)?
Thanks ahead

--Ram
 
N

Nicholas Paldino [.NET/C# MVP]

Ram,

When running as a server application, you are actually crossing the
process boundary. This is what is accounting for your slow times. Also,
depending on what other COM+ services you take advantage of, those
interceptions are going to take up more time for each call. However, the
fact that you are making an out of process call, and everything needs to be
marshaled to the other process is going to account for most of the
performance decrease.

Hope this helps.
 
M

Michael S

Ram, I think what Nicholas is trying to say is that

COM+ Sucks So Hard It Bends Light

=)

- Michael S
 
S

Steve Walker

Ram said:
Hey,
I have a ServicedComponent derived class, with only one method that
uses ESRI objects.
When I run the object in ApplicationActivation set to library I get
greate calltimes, but when I set it to work as Server, my calltime
becomes almost 20 times slower.
When running a .Net object under Com+ as Server activation, I know
there are performance issues because of the creation time of the object
in the Com+, but even though, the differences shouldnt be so immense...
What could make the performance differences so big (20 times slower)?

Cross-process marshalling. Does it need to run as a server component?

Another question; what are the ESRI objects written in? Are they being
serialized, or is every call on them going cross-process as well?
 
W

Willy Denoyette [MVP]

Michael S said:
Ram, I think what Nicholas is trying to say is that

COM+ Sucks So Hard It Bends Light

=)

- Michael S

I don't think that this is what Nicholas is trying to say. He's just saying
that inter-process calls are (obviously) slower than in-process calls.
I guess this is what YOU are trying to say, but keep in mind that COM+
interop is still the fasted way to execute Object based RPC calls (yes,
faster than remoting even using the 'new' ipc channel in v2) on windows.

Willy.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top