Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF render slower with more processors

I'm really at a loss on this one. I have an expander that contains an ItemsControl that looks something like this;

<ItemsControl ItemsSource="{Binding Source={StaticResource SomeItems}}">
   <ItemsControl.ItemTemplate>                                
      <DataTemplate>
         <StackPanel>
            <ContentControl Content="{Binding}" />
         </StackPanel>
      </DataTemplate>
   </ItemsControl.ItemTemplate>                                
</ItemsControl>

This renders just fine when expanding on most machines (single and dual core). For some reason when running on a brand new machine with a quad core (i7) expanding this expander takes into the minutes. I did some profiling and it seems there are thread synchronization issues when WPF is measuring the elements, actual time spend measuring and render seem negligible, time spend waiting for thread synchronization is the bulk of it. Has anyone else seen anything like this?

FYI - I did attempt this on three different quad core (i7) machines and have the same issue. No problems running on many older machines. I confirmed that the machines are fully patched and that WPF is using hardware rendering. Have done the obligatory application and framework re-install.

Any ideas where else to look?

Thanks

--some updates from comments--

-once the expander has been expanded, collapsing and re-expanding are fast on the problem machines

-even when hardware rendering is disabled behavior is the same. I think that should remove the graphics card from the equation.

-We are running .Net 4.0

--Some Specs as requested-- Win XP SP 3 on Intel Core i7 (4 cores) M 620 @ 2.67GHZ 2.98 GB of RAM 275 GB available storage

like image 567
Christoph Avatar asked Aug 19 '10 17:08

Christoph


1 Answers

My first thought would be to take the graphics card out of the equation as much as possible. Try disabling the Aero theme and go back to Windows basic.

Also could you post the full specs of the machines? Hardware, software, 32 vs 64 bit, .net version, etc ...

like image 63
JaredPar Avatar answered Nov 07 '22 17:11

JaredPar