Ranorex slow after moving to VS2010 / .NET4
Posted: Wed Dec 21, 2011 11:30 am
LS,
we are using Ranorex (version 2.3) to test our application. We want to move over to VS2010 / NET4 (we are using VS2008 / NET3.5). However while testing we found that version 2.3 is not supporting NET4.
So we migrated to Ranorex 3.2 and recompiled our scripts (downloaded the evaluation version).
This is what we found:
- The scripts do run but the test fail on time-outs (part of our scripts)
- We see high CPU loaded (UI thread is running at 100% for 10 seconds).
Configuration:
- Windows 7 embedded 64-bit (application 32-bit)
- GUI WPF and Windows forms
- Our application host process is build against .NET 3.5 we force the EXE to load the CLR 4.0 by means of the app.config file (not sure if this is relevant).
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
This problem is currently blokking our migration so any help is welcome.
Update 21/12/2011
I did some debugging and what I found is that there lot of call to (340 calls)
Ranorex.Libs.WinForms.AssemblyResolver.AssemblyResolveHandler(System.Object, System.ResolveEventArgs)
I tried the same test on another system which is still using Ranorex version 2.3 and CLR2.x / NET 3.5.
To be a 100% sure I need to dig deeper but is the behaviour new to Ranorex 3.2 or is it new to CLR4?
Does this give a hint to solve this problem?
Here is part of the calls stack
Regards
TomF
we are using Ranorex (version 2.3) to test our application. We want to move over to VS2010 / NET4 (we are using VS2008 / NET3.5). However while testing we found that version 2.3 is not supporting NET4.
So we migrated to Ranorex 3.2 and recompiled our scripts (downloaded the evaluation version).
This is what we found:
- The scripts do run but the test fail on time-outs (part of our scripts)
- We see high CPU loaded (UI thread is running at 100% for 10 seconds).
Configuration:
- Windows 7 embedded 64-bit (application 32-bit)
- GUI WPF and Windows forms
- Our application host process is build against .NET 3.5 we force the EXE to load the CLR 4.0 by means of the app.config file (not sure if this is relevant).
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
This problem is currently blokking our migration so any help is welcome.
Update 21/12/2011
I did some debugging and what I found is that there lot of call to (340 calls)
Ranorex.Libs.WinForms.AssemblyResolver.AssemblyResolveHandler(System.Object, System.ResolveEventArgs)
I tried the same test on another system which is still using Ranorex version 2.3 and CLR2.x / NET 3.5.
To be a 100% sure I need to dig deeper but is the behaviour new to Ranorex 3.2 or is it new to CLR4?
Does this give a hint to solve this problem?
Here is part of the calls stack
Code: Select all
OS Thread Id: 0x1f08 (17)
Child SP IP Call Site
0a54be30 5c075e00 Ranorex.Libs.WinForms.AssemblyResolver.AssemblyResolveHandler(System.Object, System.ResolveEventArgs)
0a54be34 68db0de1 System.AppDomain.OnAssemblyResolveEvent(System.Reflection.RuntimeAssembly, System.String)
0a54c074 6a2121db [GCFrame: 0a54c074]
0a54d0ac 6a2121db [HelperMethodFrame_PROTECTOBJ: 0a54d0ac] System.Reflection.RuntimeAssembly._nLoad(System.Reflection.AssemblyName, System.String, System.Security.Policy.Evidence, System.Reflection.RuntimeAssembly, System.Threading.StackCrawlMark ByRef, Boolean, Boolean, Boolean)
0a54d154 68dce713 System.Reflection.RuntimeAssembly.InternalGetSatelliteAssembly(System.String, System.Globalization.CultureInfo, System.Version, Boolean, System.Threading.StackCrawlMark ByRef)
0a54d17c 68dce4ea System.Resources.ManifestBasedResourceGroveler.GetSatelliteAssembly(System.Globalization.CultureInfo, System.Threading.StackCrawlMark ByRef)
0a54d1c0 68dbd314 System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(System.Globalization.CultureInfo, System.Collections.Generic.Dictionary`2<System.String,System.Resources.ResourceSet>, Boolean, Boolean, System.Threading.StackCrawlMark ByRef)
0a54d230 68dbcf95 System.Resources.ResourceManager.InternalGetResourceSet(System.Globalization.CultureInfo, Boolean, Boolean, System.Threading.StackCrawlMark ByRef)
0a54d298 68dbcd51 System.Resources.ResourceManager.InternalGetResourceSet(System.Globalization.CultureInfo, Boolean, Boolean)
0a54d2b4 68dd324a System.Resources.ResourceManager.GetResourceSet(System.Globalization.CultureInfo, Boolean, Boolean)
.....
TomF