Monday, May 7, 2012

WebpageTest & dynatest of Application Craft

Application Craft - Performance Testing

Update: 5/18/2012 When this was first reported on the forum (https://getsatisfaction.com/application_craft/topics/basic_performance_issues_wrt_cache_cdn_and_combine_of_files) Freddy May, the CEO of ApplicationCraft.com noted that this is being looked into.  Freddy was quick to see the problem report and I have full confidence that this will be addressed as he promised.  When a release is made available which addresses this performance testing, I will update the findings here.

Overview

I created a simple single page AC web app and used two free testing tools to measure performance and this blog reports the good, the bad and the ugly.

As shown below, from WebpageTest.org AC received 3 A's and 2 F's.  Yeah for the A's, Rats for the F's.

Below that is the dynaTest summary chart showing overall a "D".   Though Network (B) and Server Rank (C) were ok, the Caching Rank (D) and Javascript Rank (F) leaves plenty of room for improvement.

WebpageTest.org - Summary grades

dynaTest - summary general Best Practices
dynaTest - Summary Best Practices Grads

Background

Application Craft is a cloud based development tool for desktop, tablet and mobile development.  

WebpageTest.org is a free website speed test from multiple locations around the globe using real browsers (IE and Chrome) and at real consumer connection speeds. You can run simple tests or perform advanced testing including multi-step transactions, video capture, content blocking and much more. Your results will provide rich diagnostic information including resource loading waterfall charts, Page Speed optimization checks and suggestions for improvements.

dynatrace Ajax dynaTrace AJAX Edition 3 makes building lightning fast Web 2.0 applications easy. Speed your page load times, optimize rendering, tune DOM execution, and compare to competition.

This blog post is going to use WebpageTest and dynatrace to do performance testing on a simple Application Craft web page.

Video

A recording of the session is available here.  Note that the sound gets out of sync a little with the video.  I'm looking into what is causing that.

Application Craft web app 

The AC app that is being tested is here.  It consists of one page with one Text Widget displayed.  There are no events.  There is no reference to any server side code, no reference to any other widget including Google Maps, Google Maps Advanced or the Weather component.   It couldn't be any simpler.

WebpageTest.org Usage and Results

Options

For this performance test, the options I used are the following:
  • URL: http://acft.ws/gdys
  • From: Chicago, IL
  • Browser: Firefox
  • Connection: DSL

Results

The results are available for viewing here

Summary

The Summary shows that the app has 3 A grades and 2 F's.  The F's are First Byte Time and Cache static Content.  The Start to Render time is 2.81S and the Fully Loaded time is 4.3S.  Note that there is no grade for CDN as none of the resources are utilizing CDN.


WebpageTest - Summary

Waterfall View

The WebpageTest Waterfall View is shown below.  Online you can mouse over the resources and see what specifically is being loaded.  I noted that Google Maps, Google Advanced Maps and the Weather javascript files are being included even though they are not referenced.  They don't take a lot of time to load but are never the less unnecessary.

Note at the bottom of the chart is CPU Utilization and Bandwidth.  At the 3.4s time is the Document Ready state and the CPU bumps up a little as it renders the widget.
WebpageTest - Waterfall View

Full Optimization Checklist

As you can see from the picture below, none of the resources are cached, the CSS & Javascript files are not combined, and no CDN is detected.  All of these would have to be addressed by AC development team to improve performance.  Possibly the application could be exported and manually addressed.
WebpageTest - Full Optimization Checklist

dynaTrace Ajax Edition

The dynaTrace Ajax Edition must be installed.  It is free and can be downloaded here: http://ajax.dynatrace.com/ajax/en/

If you're going to use FireFox, be sure to check you Extensions and verify that dynaTrace Ajax Edition is Enabled.

To setup dynaTrace once it's running, take the Firefox browser menu and the Manage Run Configurations.  Provide and title and URL.  Then run to gather the stats.

Performance report

This report shows the Overall Rank of D.  The two big areas in my opinion for concern are the Caching Rank (D) and Javascript Rank (F).  Again, these will need to be addressed by AC developers.

dynaTrace - Performance Report (top half)
The bottom half of the dynaTrace Performance Report shows how the application performing compared to the 50th and 95th percentiles of general Best Practices.  As can be seen, the Total Load Time is worse then the 95th percentile.  And both Server and Client time is too.  
dynaTrace - Performance Report (bottom half)

Browser Caching Performance Rank

On this report, this AC app receives a "D".  You can click on the link for Best Practice on Browser Caching to read and understand how this effects performance.  Again, this is probably something only AC developers can address.
\
dynaTrace Browser Caching Performance Rank

Javascript / Ajax Performance Rank

This report shows how the app compares to general Best Practices for Javascript / Ajax.  You can click on the link Best Practices on Javascript/AJAX Performance Optimizations.  
dynaTrace - Javascript / Ajax Performance Rank

Summary

From looking at the reports made available from WebpageTest and dynaTest Ajax Edition, it appears to me there are a few things that Application Craft developers could do to improve performance though I'm no expert in this area.  These reports lead me to believe that AC could address
  • Browser Caching Headers
  • Javascript / AJAX performance 
  • Utilize CDN for static content
  • Combine CSS and Javascript files
I hope to have an update to this showing marked improvements once the AC team has the opportunity to look at these issues.  I don't have any insight into the AC development schedule and it could well be that these are already known issues and scheduled for review.

1 comment: