We had a similar issue, our target machines include slow, very slow, Windows
98 computers with little RAM. Starting our application was taking over 3
minutes on a test box. Obviously not acceptable. Our solution was to copy
the proxy class created by VisualStudio. From this copy we took out all but
the very minimum web methods. At application startup we referenced the
subset webservice description. On another thread, we started up the main
webservice. Once the main webservice proxy was created we switched over to
using this one for all further calls. This took our startup time down to
just under a minute. Of that remaining time 30 seconds was needed just to
crank up the dotnet runtime. Not great times, but we decided that it was
acceptable. 

To answer you second question, NGEN-ing the result did not make a
significant difference at this point.

> -----Original Message-----
> From: David L [SMTP:[EMAIL PROTECTED]
> Sent: Saturday, March 22, 2003 11:00 AM
> To:   [EMAIL PROTECTED]
> Subject:      [ADVANCED-DOTNET] Questions on proxy classes and emitted
> assemblies
> 
> We have a client app that connects to a number of services on a web
> server. When the client initially creates an instance of a proxy class the
> runtime emits a dynamic assembly for it.  If I dump the loaded assemblies
> in that appdomain I see a number of entries which I believe correspond to
> the emitted assemblies. For example, one such assembly is named hxt2vqpt,
> its version is 0.0.0.0, its codebase points
> to
> "file://c:/winnt/assembly/gac/system/1.0.3300.0__b77a5c561934e089/system
> .dll", and its location contains an empty string. Each time I create an
> appdomain and instantiate the proxy classes a different set of these
> assemblies gets created.
> 
> It takes a second or two to emit each assembly. Our app currently uses 8
> services, so the total time it takes to create these assemblies is between
> 10 to 16 seconds.
> 
> I have several questions. First, what, if anything, can be done to speed
> this up? All ideas are welcome.
> 
> Second, is it possible to ngen these proxies so that the runtime loads and
> uses the pre-generated assemblies rather then emit them the first time I
> create an instance of the class in an appdomain?  Does this approach have
> any merit to it?
> 
> Last, where can I find documentation on the process the runtime goes
> through when a proxy class is instantiated?
> 
> Thanks in advance.
> 
> ===================================
> This list is hosted by DevelopMentor�  http://www.develop.com
> You may be interested in Guerrilla .NET, 24 March 2003, in London and
> Boston
> http://www.develop.com/courses/gdotnet
> 
> View archives and manage your subscription(s) at
> http://discuss.develop.com

===================================
This list is hosted by DevelopMentor�  http://www.develop.com
You may be interested in Guerrilla .NET, 24 March 2003, in London and Boston
http://www.develop.com/courses/gdotnet

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to