While preparing for my talk at Codemania I started filling my slides with links, clearly not something that scales. So, instead, here is a big list of interesting tools and resources that can help you journey through the murky waters of web performance.

Online page testers

  • Recommended: Web Page Test - The best free multi browser test platform.
  • Other similar tools are: Page Analyzer, Pingdom full page test
  • There are also monitoring tools with page test integration showslow, GTmatrix
  • REDbot is handy tool for cache validation. Are you missing an Expires or Cache-Control header?
  • HTTP Archive keeps historical performance snapshots of many sites online. See how your site has done over the last few years.
  • Zoompf (pay) offers a full site optimisation solution, the blog is well worth reading.

In browser waterfall UI

A key tool for analysis of any web performance issues is the waterfall UI. See also this Steve Souders blog post on waterfall UI conventions.

  • Recommended: Google Chrome - clean UI, option to disable cache, best waterfall UI. (CTRL-SHIFT-I) - note: Safari ships with the same tools - slightly dated (enable the develop menu)
  • Opera and IE ship with similar tools. Firefox has Firebug. Additionally there is the non-free HttpWatch(pay) for Firefox and IE.

Browser plugins and performance auditors

  • Recommended - Google Page Speed - trickiest to install, however provides very comprehensive results and helps you perform optimisations
  • Recommended - YSlow - the original performance audit tool, now open source
  • Recommended - Web Developer Toolbar very important for Firefox testing, allows you to easily disable cache or js.
  • Chrome Speed Tracer - A bit tricky to get running and provides an information overload, perhaps the richest performance profiler out there. Learn how much each selector is costing you.

PNG / JPEG Compressors

  • Recommended PNGOptimizer - Fast, excellent compression, nice GUI and optional command line
  • Notable mention: PNGQuant - Best compression, but loses quality (reduces palette to 256)
  • Other options: OptiPNG, PNGOUT, PNGCRUSH, PNGGauntlet (UI wrapper) and Trimage (UI wrapper for Linux, recommended by Johann)
  • Recommended Paint.NET - Most simple photo editing and re-compression tasks can be done here, nice jpeg compression preview.
  • JPEGmini - handy online tool for re-compressing jpeg files (recommended by Andy)

Sprite utilities and Data Uri tools

Web accelerators

  • Recommended Google's mod_pagespeed - Comprehensive, after-the-fact optimiser. Automatically compresses CSS/JS, creates sprites, inlines small scripts, optimises browser rendering and more. Easy to set up as a proxy using Apache mod_proxy.
  • Recommended Request Reduce - IIS only. Bundling, minification and spriting.
  • For web accelerator as a service look at blaze.io(pay) (now owned by Akami) and strangeloop networks(pay).
  • Aptimize (pay) offers an IIS plugin similar to Request Reduce.
  • CloudFlare CDN + site accelerator service, requires you point your DNS records at CloudFlare. Yottaa(pay) and Torbit(pay) offer a similar service.

I need help choosing a CDN

  • Recommended CDNPlanet - list information about most CDN offerings out there. They also offer a service that allows you to measure your CDN performance for free.
  • Recommended Cloud Climate - see various CDNs performance in your browser

Debugging proxies and latency simulators

  • Recommended Fiddler must have debugging tool, many advanced features. Also see: StressStimulus a load testing extension.
  • Recommended DUMMYNET - the only way to properly simulate a high latency connection, all the rest do not operate at the TCP level so do not properly simulate TCP slow start. ipfw is already installed on all Mac OS X machines by default. On FreeBSD you will need to recompile the kernel for DUMMYNET support (well worth it though). Also works on Windows x32 as a ndis driver (no x64 support)
  • CharlesProxy (pay) multi-platform web debugging proxy

JavaScript loaders

Often loading JavaScript files synchronously can be the slowest part of your page.

  • LabJS appears to be the de-facto standard async js loader
  • There is a great matrix comparing all the loaders at on the defer.js page
  • Check out this presentation by @aaronpeters

JavaScript tools and libraries

  • jsPerf: community driven JavaScript performance testing playground

Production web profilers

  • Recommended MiniProfiler (.NET, official Perl/Ruby port in progress) - clearly being the a co-author I would recommend this, try it out - you will love it. There is also a PHP fork.
  • Google App Engine Mini Profiler (Python, Free) - a similar tool to MiniProfiler by Ben Kamens.
  • Recommended New Relic (Lite version is free) - birds eye profiling of your production app, been around for quite a few years, extensive reporting.
  • Recommended Google Analytics contains a feature that allows you to track client side performance, but be warned, you are going to need to filter out some data.

Profilers and web profilers

  • dynaTrace AJAX Edition (pay): part performance auditor, part JavaScript profiler it attempts to automatically catch what is making your page slow. Windows only, I could only get it to work in IE.

JS / CSS minifiers and compressors

Network capture tools

  • Recommended Wireshark the de-facto standard, cross-platform GUI for capturing and analyzing network traces
  • Microsoft Network Monitor very easy to install and run Windows specific network capture tool.
  • TCPDump probably the only tool you would run in production, ships with Linux/BSD/Unix systems
  • Visual Roundtrip Analyzer - this is a very unique tool, a performance auditor with packet capture built in. Well worth a play, though I would be careful acting on some of the analysis.

Web load testing tools

  • WCAT Lightweight tool by Microsoft for load testing sites
  • JMeter Open source Java based web load tester

The future SPDY and beyond

  • SPDY white paper - very important read, SPDY solves many of the performance problems inherit in HTTP
  • RFC 3390 increasing TCP initcwnd to 10. The objection from Jim Gettys.
  • pjax - pushState + Ajax - this is a relatively new technique for having 1 page apps that look and feel like multi page apps. This allows you to share layout and header/footer and js parsing between pages. Used at 37signals.
  • My article about IW 10 (now enabled at Stack Overflow) - How to enable IW-10 on Windows.

Backend performance

It is true, usually the Golden Rule applies, optimising the backend is often the least bang for buck you can get. However, backend performance can not be ignored. Some sites are paying the largest amount of performance tax due to backend issues.

  • recommended .NET memory profiler - My favourite memory profiler for .NET, it also works in production. If you have too many objects in your managed heap your whole app will start stalling. This will help you find it.
  • recommended CPU Analyzer - a tool I wrote, allows you to track down WHY your CPU is pegged at 100% in production. (.NET only) This tool has saved us many many times.
  • recommended - SQL Server Profiler I love the flexibility and power SQL Profiler offers, if you are running Microsoft SQL Server you really should learn to use it.

Important blogs and web resources

Miscellaneous tools and links

  • Stack Exchange Data Explorer - SEDE allows you to run db queries in your web browser and easily share results, we use it internally to perform analysis on our web logs (that are stored in a specific SQL Server instance). You can see a live demo here.
  • Web Performance Cheat Sheet - a bunch of stats correlating performance to your site's success.

Note: I will be updating this list, if there is anything I missed, please let me know in a comment.

Comments

Chad_Moran over 2 years ago
Chad_Moran

I'm very much looking forward to the ruby port of the MVC Mini Profiler <3

Justin_Thomas over 2 years ago
Justin_Thomas

Awesome. Thanks Sam!

Andy_Davies over 2 years ago
Andy_Davies

One thing to watch with page waterfalls in Chrome is that JS & CSS from extensions get's included in the waterfall and this can muck up the timings.

For compressing JPEGs I'd currently recommend http://jpegmini.com/

Funomy over 2 years ago
Funomy

Hi Sam, nice reference. You can get more information related to WPO on Funomy's blog http://www.funomy.com/blog (Only Spanish for now)

Johann over 2 years ago
Johann

I'd add Trimage to the list because it unifies several PNG compressors and supports drag&drop.

Zac over 2 years ago
Zac

Thanks Sam, great list.
Any recommendation for Silverlight performance tool?

Sam Saffron over 2 years ago
Sam Saffron

not really sure, have not done any silverlight work, it seems that from silverlight 4.0 and above you can use traditional profilers like ants, earlier versions you can use xperf http://stackoverflow.com/questions/55943/how-to-profile-a-silverlight-application

Jacob_Share over 2 years ago
Jacob_Share

Great list.

I use Pixresizer to resize and compress directories of images at one time:

http://bluefive.pair.com/pixresizer.htm

Mehdi over 2 years ago
Mehdi

Awesome… Thank you for sharing!

Rajesh over 2 years ago
Rajesh

Wow.. Astonishing info

Brad over 2 years ago
Brad

Hi Sam… I know our list of live free web performance tools
www.dotcom-monitor.com >Tools were originally mentioned in Tamara Weinberg's book The-New-Community-Rules-Marketing:Marketing on the Social Web …and since then we've added more….and yes we can monitor the performance of Silverlight

Binoj_Antony over 2 years ago
Binoj_Antony

And not to forget dapper!!
Since there is no point in making the client load fast unless your page is served is equally fast!
And page is served fast when your ORM is fast!

Sam Saffron over 2 years ago
Sam Saffron

flattered smile a bit worried about getting into ORM battles here (even though we all know dapper is very fast)

Ahmed_Araby over 2 years ago
Ahmed_Araby

Thanks alot :)

Prasad over 2 years ago
Prasad

Awesome … Thank you for sharing!!!

Andrew over 2 years ago
Andrew

Really appreciated your talk at Codemania today. Thanks for taking the time out :)

Sam Saffron over 2 years ago
Sam Saffron

Thank you! If you have any questions feel free to ping me on twitter or email.

Josh_Fraser over 2 years ago
Josh_Fraser

This is great! Thanks for putting this list together. Any chance you could add Torbit (torbit.com) under the web accelerators section? Thanks!

Sam Saffron over 2 years ago
Sam Saffron

no probs, keep up the blog smile

Chris_Weekly over 2 years ago
Chris_Weekly

Good list, thanks for sharing.
Nit: YOTTAA has two As. :)

Sam Saffron over 2 years ago
Sam Saffron

apologies Chris, fixed it up, love the blog - keep up the blogging smile

Otis_Gospodnetic over 2 years ago
Otis_Gospodnetic

Great list, bookmarked :)

Sematext SPM monitors Apache Solr, Apache HBase, ElasticSearch, SenseiDB, etc…. as well as any Java Apps!

Here are some links to SPM:
http://sematext.com/spm/index.html
http://sematext.com/spm/solr-performance-monitoring/index.html
http://sematext.com/spm/hbase-performance-monitoring/index.html

Tammy_Everts over 2 years ago
Tammy_Everts

Thanks so much for the Strangeloop mention, Sam. I just want to mention that, in addition to our Site Optimizer service, we also offer an appliance, which is preferred by our enterprise customers (such as eBay/PayPal) and other customers who need to accelerate behind the firewall:

http://www.strangeloopnetworks.com/products/overview/

Your readers might also be interested in checking out the blog of our president, Joshua Bixby:

http://www.webperformancetoday.com/

Great list. Thanks for sharing!

Shashikiran over 2 years ago
Shashikiran

fantastic blog, this is what i am looking.
webpage test is a great service

Jalpesh_Vadgama over 2 years ago
Jalpesh_Vadgama

Nice set of rules. Really Helpful!!

Armand over 2 years ago
Armand

Great list here… i've directed many people to this page

thanks

Cloud_Backup about 2 years ago
Cloud_Backup

Super awesome list. Although, I haven't found much luck using CloudFlare and always ran into issues.

Nick almost 2 years ago
Nick

One more tool to bookmark
http://compresspng.com

Régis Hanol about 1 year ago
Régis Hanol

I really like High-Performance Browser Networking written by Ilya Grigorik. A must read for every web developer willing to understand the impacts the network has on the performances.

Sam Saffron about 1 year ago
Sam Saffron

Been meaning to buy this book, fyi Ilya hangs out on http://bigqueri.es/ (a Discourse site) where a lot of analysis is done on the httparchive data dumps.

Burak 7 months ago
Burak

Thanks for the good and useful collection of performance testing tools. I just wanted to add MaxCDN Tools to the comments. It offers variety of performance tools and they are very useful especially if you are using CDN.

Thanks.


comments powered by Discourse