Blog posts tagged with 'speedbrowse'
I've been spending quite a bit of time digging into the topic of how to optimize the performance of Adobe Flash content (animations and videos) when using a web browser hosted on Citrix XenApp (see Parts 1, 2, 3 and 4 of this series). Here's a secret for optimizing Flash performance that will seem totally counterintuitive. Actually, this one took me by complete surprise...
From my blog post on SpeedScreen Browser Acceleration ("SpeedBrowse" for short), you might have picked up on the fact that there is an incompatibility between this feature and Flash content. Delving into this, I recently learned that if Internet Explorer running on XenApp will be used to access a web app or web site(s) with Flash content, it is best to turn SpeedBrowse off. Why?
When Internet Explorer encounters Flash content, it switches to an off-screen rendering and compositing mode. In this mode, SpeedBrowse is prevented from tracking how images get drawn onto the off-screen surface and then to the real display surface (bit block transfers). From then on, JPEG and non-transparent GIF images will be sent over the wire twice; over the SpeedBrowse virtual channel (but never used) and over ThinWire to draw them. As a result, more bandwidth is consumed than necessary.
To avoid this interaction issue, I recommend that you review how your organization uses Internet Explorer on XenApp. On servers where IE is used only to access specific web apps that don't utilize Flash, you'll want to keep SpeedBrowse enabled. But if you're publishing Internet Explorer for general web browsing or to access web applications with Flash content, I recommend turning SpeedBrowse off. This can be done at the server or farm level.
As you would expect, a mitigating hotfix is now in the works (in fact, it has already been incorporated into XenDesktop 2.0). I'll keep you posted as we make further progress on this issue.
Another option to consider (dare I go there?) is to turn Flash off. Again, you'll want to carefully consider how Internet Explorer is used in your organization before making this choice. If IE on XenApp is intended to be used just to access specific web sites, you may determine that the Flash content on those sites is not particularly important. Or, like MSN.com, the site may be designed to provide alternative content if Flash isn't available. You could then choose to turn Flash off in order to maintain the benefits of SpeedScreen Browser Acceleration. There is an article in the Citrix Knowledge Center that provides instructions for disabling Flash (document ID CTX110407).
If you have any feedback on this blog post or the others in this series, please share your comments! If you are able to measure a change in bandwidth consumption after following my recommendations above, please share your results. And I'd love to hear your views on the importance of further optimizing Flash performance and your use cases for published web browsers.
Derek Thorslund
Product Strategist, Multimedia Virtualization
Whereas Citrix NetScaler is all about delivering web applications with outstanding performance, availability and security, the SpeedScreen Browser Acceleration feature of Citrix Presentation Server is focused on optimizing the performance of the web browser used to access those applications. Many Citrix customers deliver Internet Explorer and/or Mozilla Firefox to their users through Presentation Server for reasons well articulated by Brian Mirrotto and Rob Patterson in their iForum 2005 presentation Take Control of Your Users' Web Browser; in particular, easier management, better performance and improved security (see also Resolve Web browser security and compatibility issues). SpeedScreen Browser Acceleration ("SpeedBrowse" for short) improves the usability of Internet Explorer when accessing web pages that contain JPEG and non-transparent GIF images, two very common digital image file formats. (SpeedScreen Image Acceleration takes over for photographs and other high detail images.) It also optimizes the performance of Outlook and Outlook Express when viewing HTML-based email.
SpeedBrowse actually consists of several sub-features that work in tandem to improve browser responsiveness and reduce bandwidth consumption. Here's a high-level summary of the most important pieces that make up the SpeedBrowse feature:
- Optional automatic disabling of GIF animations. By default, SpeedBrowse disables Internet Explorer's "Play animations in web pages" option. This setting reduces bandwidth consumption and enables the resulting static GIF images to be delivered over the SpeedBrowse virtual channel.
- High-level browser hooking. SpeedBrowse uses high level hooks into Internet Explorer to intercept JPEG and GIF images before they are decompressed. Images can be sent to the client in their native compressed form, minimizing bandwidth consumption.
- Dynamic JPEG image recompression. JPEG offers multiple levels of compression. By recompressing a JPEG image at a higher, more "lossy" level of compression, bandwidth consumption can be further reduced, at the expense of image quality. Presentation Server Enterprise Edition and Platinum Edition offer a "Determine when to compress" option that dynamically evaluates image size and available network bandwidth to automatically decide how much compression to apply.
- Background image delivery. SpeedBrowse sends compressed images in chunks over a separate SpeedBrowse virtual channel so as not to block the Thinwire command protocol. The user can scroll and use the Back and Stop buttons of the browser with excellent responsiveness as images are downloaded at lower priority in the background.
- Client-side image caching. SpeedBrowse caches compressed image chunks on the client. If the server detects that a chunk is already in the client's image store, it will not resend that chunk. It only needs to send an identifier. By caching image chunks on the client, web pages that are revisited display much faster and bandwidth consumption is reduced because the server does not need to retransmit previously sent images. Furthermore, decompressed images are added to the client's cache as bitmaps so that these images don't need to be decompressed each time they are drawn. This provides a significant performance boost when a web page is scrolled because scrolling generates multiple drawing operations for each image on the page.
Of course, there are some limitations, too. SpeedBrowse is not compatible with web pages that include Adobe Flash content. And it would be nice to see an enhancement to handle PNG images, which offer more vibrant color than GIFs.
When you look at the multiple facets of SpeedScreen Browser Acceleration, you can see why it adds up to a tremendous feature for accelerating web browser performance. A study by Doculabs (click for summary press release or full report) published shortly after SpeedBrowse was introduced concluded that Presentation Server provides "200% to 250% more efficient network bandwidth utilization than locally installed browsers (depending on the configuration and tuning options selected)" and "may provide users with a two-fold or greater increase in page loading performance" on low bandwidth connections. This testing was done against a set of 99 web pages including commercial sites such as Google, Yahoo and Microsoft.com. 50% of the pages were graphically intense (over 95% of the total page download coming from image loading). Using a browser delivered via Citrix Presentation Server resulted in a transfer of 55% less data than when browsing with a locally installed browser, resulting in noticeably faster response times. The SpeedBrowse feature is a big contributor to this outstanding performance.
In the time since the Doculabs report was written, we've witnessed the emergence of numerous Javascript-enabled web sites (Gmail, for example). These days, there's a lot more data getting sent down to the browser, which now is becoming a pseudo operating system executing all these applications. It's often a lot less network intensive to send the image representation of the web page through ICA rather than downloading the entire page to the client. This is especially important if the client is at the end of a limited bandwidth pipe.
Derek Thorslund
Product Strategist, Multimedia Virtualization