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
