MeasureOverride和ArrangeOverride在windows server 2016 vs windows 10 pro上执行速度减慢3倍

问题描述:

我一直在努力确定为什么我们的WPF应用程序在我们的生产环境中运行速度比我们的本地机器慢大约3倍。我一直在使用我们在生产中使用的一个刀片来测试设置的各种更改以尝试获得相同的时间。我们最终将操作系统从Windows Server 2016切换到了Windows 10 Pro,并且该应用程序在刀片服务器上的运行速度与在本地计算机上的运行速度一样快。MeasureOverride和ArrangeOverride在windows server 2016 vs windows 10 pro上执行速度减慢3倍

在远程使用dotTrace进行一些分析后,我可以确定MeasureOverride和ArrangeOverride在2016年执行所花的时间比他们在10上花费的更多。我们将服务器切换为更喜欢桌面应用程序而不是后台进程,改变执行时间。我们还没有覆盖任何测量或排列方法。我们正在为我们的一些控件使用infragistics,因此它们很可能会覆盖这些控件。

有谁知道Windows Server 2016的设置或实现细节可能导致执行时间的这种剧烈变化吗?

编辑: 我们也尝试安装图形卡,启用RemoteFX,优化特定窗体以减少重绘次数。此外,我只是继续前进,并用几乎没有任何内容对WPF应用程序进行概要分析,并使用dotTrace,在本地执行度量需要8ms,在我们的服务器上执行度量需要750ms。

这里是XAML

<Window x:Class="StockWpfApplication.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:StockWpfApplication" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <TextBlock Text="Text" Height="20" Width="50" HorizontalAlignment="Left"/> 
    <Button Content="Button" Height="20" Width="50"/> 
</Grid> 

2016剖析: 2016 Profiling

10 Pro的性能分析: 10 Pro Profiling

+0

你是如何测试/访问你在你的刀片运行的应用程序?它是通过远程桌面连接?还是通过本地登录?这可能与此有关。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/ae95f1c9-c67e-4950-b01f-d3f7fa0408e4/wpf-performance-via-remote-desktop-increased-performance-after-installing-visual- studio?forum = wpf ... https://blogs.msdn.microsoft.com/jgoldb/2010/02/27/optimizing-visual-studio-2010-and-wpf-applications-for-remote-desktop/ –

+0

。 ...因为您可以使用WPF性能套件分析您的应用程序在不同版本的Windows上的GPU如何运行....... https://blogs.msdn。microsoft.com/wpf/2015/01/16/new-ui-performance-analysis-tool-for-wpf-applications/ - 或使用内置于Visual Studio 2015中的一个。https://blogs.msdn.microsoft.com/wpf/2015/01/16/new-ui-performance-analysis-tool-for-wpf-applications/....也许在可用的纹理内存方面存在差异等。 –

+0

我们已经通过RDP 。我已经考虑优化我们的WPF以减少重绘和优化一个位置以使用较不复杂的容器,并且我所做的任何优化都反映在2016和10上。我安装了Visual Studio,以查看它是否具有与此用户相同的结果报道,但没有。 –

正如你已经发现有一个区别在“电源计划“,您在Windows 10 Pro和Windows Server 2016中使用。

在安装Windows Server之后,使用的默认电源计划可能并不是最佳选择,具体取决于您要让服务器执行的操作。

运行平衡电源计划时,运行GDI或WPF渲染的应用程序的RDP桌面似乎表现不佳。

(取决于是否支持....当平衡模式运行时,在更新或更旧的一代CPU可能在切换电源状态时有不同的延迟问题)。

+0

我以为我也会把它添加到Colin的帖子中,因为我们遇到这个问题时移动到我们的VMWare机器并试图让他们的电源设置改变https://kb.vmware.com/selfservice/microsites/search.do?语言= EN_US&CMD = displayKC&外部ID = 1018206 –