Thanks, that sounds similar to what we are doing. I use a background
thread to preload the web services. I was hoping to reduce the necessity
for that thread since it still takes a fair amount of time. It seems to me
that it should only need to compile the code and emit an assembly if the
emitted assembly doesn't exist or the proxy class has changed.


On Mon, 24 Mar 2003 08:08:47 -0600, Jim Argeropoulos
<[EMAIL PROTECTED]> wrote:

>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

===================================
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