为什么我的Wpf应用程序(在全软件模式下)在Citrix服务器上运行缓慢

为什么我的Wpf应用程序(在全软件模式下)在Citrix服务器上运行缓慢,wpf,citrix,Wpf,Citrix,我已经收到了WPF申请。因为我们的Citrix没有独立的图形点菜。我必须仅使用以下选项设置RenderMode en软件: RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly; 它在我的sony duo 13中仍能流畅运行: Windows 8.1; Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz (4 CPUs), ~1.6GHz 8192MB RA

我已经收到了WPF申请。因为我们的Citrix没有独立的图形点菜。我必须仅使用以下选项设置RenderMode en软件:

RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;
它在我的sony duo 13中仍能流畅运行:

Windows 8.1;
Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz (4 CPUs), ~1.6GHz
8192MB RAM
Intel(R) HD Graphics Family; 1792 MB approx memory total;
DirectDraw speedup activated; Direct3D speedup activated; AGP texture activated
但它在Citrix服务器上运行不好(仅执行一个应用程序):

我用Windows性能工具证明了我的应用程序是在模式软件上运行的,我的应用程序的所有窗口都是紫色的(这意味着绘制软件渲染)

除了图形点菜,我们的Citrix服务器比我的hyperbook Sony更强大,但为什么它工作不好呢


谢谢

,因为您的索尼不必通过网络将所有图形更新发送到另一台机器。当您远程处理应用程序时,网络会降低图形性能。这在使用使用3G或WIFI的移动设备时尤其明显,因为延迟相当高。你的应用程序进行的每一次图形更新都会被编码成JPEG格式,然后通过网络发送到接收器。因此,如果不是100毫秒,您将看到10毫秒的更新,这取决于网络条件

图形密集型应用程序在Citrix上的性能越来越好。较新版本的服务器/接收器支持H264编码,这大大提高了性能,例如

Citrix堆栈中还集成了Framehawk等其他技术,可在恶劣网络条件下提高性能:


WPF不用于远程桌面类型的东西。确保您使用的任何软件都与WPF兼容。而切换到纯软件是一个糟糕的主意。找一台合适的机器来运行WPF应用程序。@HighCore嗨,我需要一个好的理由来说服我的老板。目前,没有其他合适的机器来运行WPF。他强迫我找到解决办法。你知道我能说服老板吗?有什么链接可以帮助我吗?Citrix有官方信息说他们支持/不支持WPF吗?没有,它支持WPF。我正在远程桌面上运行我的应用程序。我也有同样的问题。因为延迟和高UI刷新。我正在用WPF性能分析工具测试我的经理。我有一个很好的性能模式(只刷新帧速率和脏Rect附加速率)。这意味着我的应用程序已经消除了测试远程桌面、事件控制台中所有不必要的UI刷新@HighCore。Writeline()输出速度比本地输出速度慢得多。比本地速度慢4倍。谢谢,我找到了导致性能差的原因。但是你关于Citrix的信息帮了我很大的忙lot@BoHU我们在Citrix上的WPF性能方面也有类似的问题,但在本地效果很好。您能分享一下您关于如何提高性能的发现吗?@donovan很抱歉挖掘了这一古老的讨论,但您是否会说,与WinForms相比,网络瓶颈问题在WPF上更加严重,或者这是Citrix应用程序的一个普遍问题?@RuneAamodt两者都有一点。当带宽较低时,HDX在Windows控制级别使用了一系列优化(例如,本地文本回送将检测文本输入控制)。随着带宽的不断提高,HDX堆栈已转向使用H264等视频流式技术。我不再为Citrix工作,因此我不太了解HDX堆栈最近在做什么。
Windows Server 2008 R2 Standard 64 bits (6.1m version 7601)
VMware Virtual Platform
Intel(R) Xeon(R) CPU x5670 @ 2.93GHz (4 CPUs), ~2.9GHz
4096MB RAM
No graphic carte info