【问题标题】:Why my Wpf application (on full software mode) runs slowly on Citrix server为什么我的 Wpf 应用程序(在完整软件模式下)在 Citrix 服务器上运行缓慢
【发布时间】:2014-05-13 11:02:42
【问题描述】:

我有 WPF 应用程序。因为我们的 Citrix 没有独立的图形卡。我必须只设置 RenderMode en Software :

RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;

它在我的索尼二重奏 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 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

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

除了Graphic Carte,我们的Citrix服务器比我的超极本索尼更强大,但为什么效果不好?

谢谢

【问题讨论】:

  • WPF 不适用于远程桌面类型的东西。确保您使用的任何软件都与 WPF 兼容。切换到SoftwareOnly 是一个糟糕的主意。获取合适的机器来运行 WPF 应用程序。
  • @HighCore 嗨,我需要有充分的理由说服我的老板。而此时,没有其他合适的机器来运行 WPF。他强迫我为此寻找解决方案。你知道我可以说服我的老板吗?任何可以帮助我的链接?
  • Citrix 有没有官方信息说他们支持/不支持 WPF?
  • 不,它支持 WPF。我正在远程桌面上运行我的应用程序。我有同样的问题。由于延迟和高 UI 刷新。我正在使用 WPF 性能分析工具测试我的经理。我有一个很好的性能模式(仅刷新帧速率和脏矩形附加速率)。这意味着我的应用程序已经消除了所有不必要的 UI 刷新 @HighCore
  • 在我的测试远程桌面,事件 Console.Writeline() 输出比本地输出速度慢很多。比本地输出慢 4 倍

标签: wpf citrix


【解决方案1】:

因为您的 Sony 不必通过网络将所有图形更新发送到另一台机器。当您远程处理应用程序时,网络会破坏图形性能。这在使用使用 3G 或 WIFI 的移动设备时尤其明显,因为延迟非常高。您的应用程序所做的每一次图形更新都会编码为 JPEG,然后通过线路发送到接收器。因此,根据网络条件,您正在查看 10 毫秒(如果不是 100 毫秒)的更新,以便在客户端上看到更新。

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

http://blogs.citrix.com/2013/11/06/go-supersonic-with-xendesktop-7-x-bandwidth-supercodecs/

其他技术(如 Framehawk)也被集成到 Citrix 堆栈中,以提高网络条件差的性能:

http://blogs.citrix.com/2014/01/08/framehawk-will-take-our-hdx-technology-to-the-limit/

【讨论】:

  • 谢谢,我找到了导致性能不佳的原因。但是您的 Citrix 信息对我帮助很大
  • @BoHU 与 Citrix 相比,WPF 的性能有类似的问题,但在本地运行良好。您能否分享您对如何提高性能的发现?
  • @donovan 很抱歉挖掘了这个旧的讨论,但你会说网络成为瓶颈的问题与 WinForms 相比在 WPF 上更加严重,还是一般来说这对于 Citrix 应用程序来说是一个问题?
  • @RuneAamodt 两者兼而有之。早在带宽较低的时候,HDX 在 Windows 控件级别使用了一堆优化(例如,本地文本回显将检测文本输入控件)。随着带宽的不断提高,HDX 堆栈已转向使用 H264 等视频流式技术。我不再为 Citrix 工作,所以我不太了解 HDX 堆栈最近在做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 2012-01-12
  • 2010-11-23
相关资源
最近更新 更多