Tuesday, October 21, 2008

Benchmarking Flash Player 10 (Updated)

he web collectively got a bit shinier this week with Adobe's release of Flash Player 10. The new version offers designers a compelling set of new features including support for rich 3D visual effects, a new antialiasing engine, an improved drawing API, support for color management, and enhanced support for streaming audio and video content. With this release, Adobe is clearly taking steps to ensure that Flash stays ahead of the curve and won't lose traction in the face of competitive pressure from Silverlight.

Typically, the release of an Internet plug-in—even one as widely used as Flash—is interesting mostly to the developers who write software for the platform, but users may have a lot to look forward to in this release, especially those using Linux or Mac OS X. In addition to strengthening Flash's media and graphics features, Adobe has also labored to improve performance and cross-platform support. Between updates to underlying technologies and some bottleneck sleuthing, Adobe says Flash performance has improved as much as 300 percent for "the rest of us." Ars Technica decided to investigate whether Adobe was merely blowing smoke in our PDFs.

To get some relatively useful numbers and real web experience with the new Flash player, we decided to compare how well the last Flash 9 release for Mac OS X and Linux performed against version 10 on a number of sites. The most significant of these sites is GUIMark, a benchmark that puts various web-based technologies like Flash and Silverlight through their paces, all while providing frame rate averages for the duration of the test. What follows are our results from GUIMarks, our CPU records, and a discussion of the relevant changes in Flash for Mac OS X and Linux; combined, this should provide a clearer picture of whether Flash 10 actually provides significant performance improvements.

Mac OS X

The Mac version shares the general improvements and enhancements Adobe introduced in Flash Player 10, like the aforementioned introduction of 3D Effects and enhancements to drawing APIs and color management. More details on the new features can be found in the release notes for the last beta release.

The most significant improvement for Mac users, however, is briefly described by Tinic Uro, a Flash engineer, on his blog. Traditionally, Flash has not been one of the Mac's strong points. It has never performed well, and a MacBook's fans are almost guaranteed to kick in when loading up just about any Flash advertisement or that game your boss keeps busting you for playing.

As we've reported before, though, Adobe's engineers have discovered a bottleneck in Flash's text rendering. The GUIMark benchmark should be very sensitive to this because it spends more than half of its time testing a single Mac OS X text function: ATSUGetUnjustifiedBounds. As you'll see from our Mac OS X results below, performance has definitely improved in many respects on Mac OS X, though some Arsians suspect that other problems may still exist with Mac OS X's NSPlugin API.

That said, let's take a look at the results of pitting Flash Player 10 against its predecessor on both a 1.6 GHz MacBook Air and a Quad 2.66 GHz Mac Pro. These results were run using the most recent versions of both players, hosted in Safari 3.1.2 on Mac OS X Leopard 10.5.5.

  • Flash 9
    • GUIMark
      • Air: 4 FPS, two separate CPU cores held steady at 103 percent
      • Mac Pro: 9.5 FPS, two separate CPU cores held collectively at 100
    • Hulu video
      • Air: 98 percent CPU
      • Mac Pro: 63 percent CPU
    • YouTube video
      • Air: 74 percent CPU
      • Mac Pro: 45 percent CPU
    • 2advanced.com
      • Air: 20 percent CPU, Menu interaction, popups, audio cues, etc. peaked at peaked at 86
      • Mac Pro: 25 percent CPU, peaked at 75
    • Winterbells
      • Air: 78 percent CPU
      • Mac Pro: 55 percent CPU
  • Flash 10
    • GUIMark Flex3
      • Air: 17 FPS, 108 percent CPU
      • Mac Pro: 28 FPS, 140 percent CPU
    • Hulu Video:
      • Air: 84 percent CPU
      • Mac Pro: 56 percent CPU
    • YouTube
      • Air: 70 percent CPU
      • Mac Pro: 40 percent CPU
    • 2advanced.com
      • Air: 20 percent CPU, peaked at 55
      • Mac Pro: 28 percent CPU, peaked at 66
    • Winterbells
      • Air: 85 percent CPU, gameplay noticeably ramped up to a more challenging speed
      • Mac Pro: 60 percent CPU, gameplay noticeably ramped up to a more challenging speed

As you can see, GUIMark results offer the best backup for Uro's claims that performance on Mac OS X has improved as much as three times. Four frames per second in Flash Player 9 on the MacBook Air, and 9.5 FPS on the Mac Pro, is, quite frankly, pathetic. While 17 FPS on the Air in Flash Player 10 isn't exactly great, it is actually over a 4x boost in performance. 28 FPS for the Mac Pro is right at 3x faster, though the GUIMarks test worked both machines noticeably harder; especially the Mac Pro. Fortunately, our CPUs were worked at least marginally less in other tests, especially web-based video, where Flash now dominates.

Linux

Flash is widely reviled by Linux users, who almost universally disdain its proprietary licensing model, lousy performance, excessive resource consumption, poor platform integration, and abysmal lack of stability. Flash is listed by Mozilla's crash reporting system as the number one cause of Firefox crashes on Linux. On Ubuntu's brainstorm web site—where Ubuntu users suggest ways that the Linux distribution can be improved—over a thousand users have voted for items that highlight the need to fix Flash's dysfunctional behavior and frequent crashes.

Although it is still too early to tell if the stability problems have been addressed, the benchmarks clearly show that performance is on the rise. Adobe has also fixed several major bugs and added some Linux-related features that improve the Flash user experience. Benchmarks on Linux, which were conducted with GUIMark on my Mac Pro running Ubuntu 8.04, show modest improvements. Flash 9 clocked in at roughly 14 FPS, while Flash 10 boosted that to about 22 FPS.

Previous versions of Flash exhibit a very frustrating z-ordering bug that caused Flash content to always be drawn on the very top layer, where it could obscure dynamic HTML elements like drop-down menus. This problem was caused by lack of proper WMODE support in Flash and in Firefox. This long-standing bug has finally been fixed, and drop-down menus are now correctly displayed on top. Users will need Firefox 3.0.2 or higher, however, in order for this to behave properly.

Another big improvement for Linux users is the addition of support for Flash's video camera functionality. Adobe's Mike Melanson described this feature back in July when it appeared in beta 2. Adobe collected feedback and camera information from users to help fine-tune the camera support. It is implemented with the Video4Linux v2 API, which is tightly integrated with the Linux kernel and supports a wide range of devices.

Adobe has also stepped up its packaging efforts to better accommodate Linux users. With the release of Flash 10, Adobe's web site now provides the plugin in a convenient DEB package designed specifically for Ubuntu. This is offered alongside an RPM package and a binary tarball. It's also worth noting that the new version of Flash is already packaged and available from the restricted repository in Ubuntu 8.10.

Although Adobe has addressed some of the biggest problems that have been troubling Linux users, there are still some aspects of Flash that will leave them dissatisfied. There are still no 64-bit builds, for instance, and most of the components of the Flash player plugin are still proprietary and closed. Several open source software projects, including Gnash and Swfdec, aim to eliminate this dependence on Adobe by creating completely open implementations of the Flash player. These projects are maturing steadily and could eventually displace Adobe's implementation on Linux.

Conclusion

The latest version of Flash offers tangible improvements for users and for designers. The growing emphasis on strong cross-platform support reflects the increasing relevance of alternative operating systems in the technology industry. Adobe's efforts to improve Flash on Linux and Mac OS X is a tacit acknowledgment of Apple's rising marketshare and Linux's modest success on netbooks. It is also a sign that Adobe is aiming to make Flash a stronger solution for cross-platform application deployment through its popular AIR runtime. This is further illustrated by Adobe's commitment to AIR on Linux and recent decision to join the Linux Foundation.

Flash's massive install base gives Adobe a lot of power, but the company's dominance in the rich web content space hasn't made it lazy. Adobe is clearly capable of holding its own against a Silverlight incursion by delivering technical improvements that ensure Flash doesn't lose its shine.

Update - Now with more Windows benchmarks

Vista

The original focus of this piece was on the platforms where the Flash player has traditionally performed very poorly. But, by popular request, we ran the tests again on the same Quad 2.66 Mac Pro with 6GB of RAM, but this time in Firefox 3.0.2 on Windows Vista running under Boot Camp (no virtualization).

As the numbers will show, Flash performs far better in Vista versus Mac OS X running on the same hardware, and it actually improved slightly with the version 10 update.

  • Flash 9
    • GUIMark: 45 FPS, 54 percent CPU
    • Hulu: 9 percent CPU
    • YouTube: 8 percent CPU
    • 2advanced: 4 percent CPU, peaking at 27
    • Winterbells: 12 percent CPU, peaking at 16
  • Flash 10
    • GUIMark: 46 FPS, 54 CPU
    • Hulu: 7 percent CPU
    • YouTube: 6 percent CPU
    • 2advanced: 2 percent CPU, peaking at 31
    • Winterbells: 9 percent CPU, peaking at 14

Resource - Ars Technica

No comments: