Announcing MSFast By Yadid Ramot, Performance Architect, MySpace
We wanted to share with everyone an open-source project we’ve been working on at MySpace that, while relevant for developers, has a broader application for everyone. As developers ourselves, like many of you we are constantly trying to figure out the best way to profile and track the performance of our pages. After deep market research, we realized that the market for profiling tools lack features and capabilities which we think are important for efficient page optimization. These conclusions pushed us to develop a new homebrew tool, MSFast, which will hopefully cover all of these missing pieces.
It seems to us that the average web developer gives too much attention to tracking the time it takes for his content to download, and less-to-no attention to the order of the assets and the behavior of the page as it loads.
The first problem you can have when tracking download speed is that the data is not normalized and could be inaccurate for long term trending. There are too many possible points of failure when tracking your site periodically, such as; your ISP changes your test box’s connection speed unknowingly (repairs/mistakes etc.), added a new hardware that change the bandwidth, installed a new local firewall that slows the connection, etc. These are just examples of local changes that will cause your site to appear slower/faster, but in the real world outside of your test box, these changes won’t be reflected.
Another problem you can have when tracking downloads is, while it’s important to keep in mind the simple equation of [slow connection + heavy content = slow site], there’s nothing much you can do about it to help speed up your site. So, you compressed your content and headers to the limit, removed the cookies and picked the fastest backboned CDN for your site, but on the user’s end, the site still act slow. What’s next?
There are a lot of factors that need to be considered when optimizing the user experience on a page, such as ordering and prioritizing downloads, using the right type of download mechanism (blocking vs. async), utilizing the sockets correctly and that’s only for optimizing the content delivery. There are a lot of other elements that could cause bad user experience that has nothing to do with the actual download speed of the page. Elements with a really heavy JavaScript functionality, flash objects with a large amount of sprites that spike the CPU, heavy ActiveX controls that use a lot of memory, weird browser rendering quirks… these and more, can really clog the client’s machine and create a bad user experience when browsing our site.
As far as we know, the current common methods for profiling and capturing page performance are by:
For the download side, using the right HTTP tracking software that generates accurate waterfall graphs can really help developers to re-prioritize requests and optimize the way content delivers by showing the order of downloads and which request blocked the pages vs. which were download in parallel.
On the events side, the ONLOAD and other before/after benchmarks can help developers measure specific and known functionality that blocked the rendering of the page.
Using the current available tools, we can track real-time download bottlenecks, JavaScript bottlenecks (as long as we know roughly where they are) and the ONLOAD event. Here’s what we felt was still missing:
So to sum it all up, for our purposes, the ultimate performance profiling and user experience tracking tool should have:
During the past ~6 months, we at MySpace have been designing and developing a tool that would do exactly that (and more ;] ) and we ended up with “MSFast” – a browser plug-in that gives developers a complete, deep look at everything we could think of, from the moment the page leaves the web-server to the moment the page is completely rendered.
In short, the way MSFast works is by setting up a custom proxy server on the client’s machine and using that proxy to 1. Normalize the download speed by throttling inbound data 2. Injecting the page with a set of JavaScript functions that executes a series of tests and measurements.
MSFast captures the CPU and memory state of the browser’s process from the moment the page leaves the webserver to the moment the page is completely rendered.
MSFast automatically takes screenshots of the page while it renders. These screenshots could then be reviewed against the rest of the collected data to see the actual UI state of the page.
MSFast captures the page’s HTTP traffic and stores the connection times. Since we throttle the connection and always ensure a constant tracking speed, we can display download estimates for each file, under different bandwidths.
When the page loads, MSFast breaks it apart to roughly ~60 sections with an equal amount of HTML characters in them, and measures the time it takes to render each one of these sections. A developer can then review each part of HTML and see the time it will take to render it using different connection speeds.
Using MSFast, a developer can skip over the rendered code and see which section of HTML was processed by the browser during the page’s lifecycle.
MSFast has a custom list of “validators” that could run against the tested page and alert the developer if their code goes against a set of common “best practices”. These rules are fully customizable and MSFast exposes an API for writing additional business-specific custom rules.
We are dedicated to working with the developer community and see a great opportunity in giving back to the development community by open sourcing MSFast. We hope that this project will be one of the first of many future projects that we will open source ?
For more details and download directions please follow this link – http://www.msfast.com
By Yadid Ramot, Performance Architect, MySpace
CUPERTINO, Calif., June 24, 2009 – Zend Technologies, Inc., the PHP company, today announced that IBM will ship Zend’s solution for PHP in every IBM Smart Business system in order to provide their customers with reliability, performance, and security for PHP-based Web applications. Today’s announcement marks a significant expansion of the IBM and Zend partnership by now including PHP on Linux operating systems and x86 hardware in addition to IBM i OS and Power Systems hardware.
Software vendors participating in IBM’s Smart Business market are providing turnkey PHP web applications and will benefit from the high performance and automatic updates available with Zend’s web application solution.
Turnkey PHP applications simplify business owner’s IT needs. Zend’s offering includes PHP in a standardized form that is automatically updated via IBM’s integrated support software for applications that are designed for IBM Smart Business systems. This means a business owner’s IBM Smart Business system gets a complete, certified PHP stack with automated software updates and security patches. Zend supports the most popular databases, including DB2, as well as broadly used operating systems, including Linux and IBM i.
“Zend plays a key role in IBM’s Smart Business strategy to bring the breadth of the vast PHP ecosystem to small and medium businesses. With Zend we’re able to provide an integrated, reliable, and high performing business solution that leverages popular PHP applications like CRM, HR management, ERP, supply chain management, and other SMB solutions,” said Juhi Jotwani, Vice President, IBM Smart Business. “IBM Smart Business is about a radically simple new way to acquire, use and manage IT.”
“With the entire IBM Smart Business program now shipping with Zend, a much broader segment of the business community benefits from PHP’s reliability, security, and high performance with our web application environment,” said Andi Gutmans, chief executive officer at Zend Technologies. “What’s really compelling about today’s announcement is that ISVs and business owners participating in the IBM Smart Business program can unlock the power of the wide, open market for PHP applications by deploying them on our platform.”
Zend has begun working with independent software vendors (ISVs) who are delivering one-stop PHP-based solutions for IBM’s Smart Business program, including vendors such as OpenPro, OrangeHRM, WebConcepts, and vTiger. WebConcepts offers a sophisticated retail inventory planning solution to their customers that is built with PHP.
“It only took 4 clicks on the Smart Business system to install everything, the DB2 database, customizations, restore definitions, the application code… everything! All of this took the skills of multiple people in the past and this is now the simplest, most painless experience I have ever had with IT. I never thought I would say that ‘IT stuff’ was fun, but this is simply amazing,” said Ray Young, chief executive officer at WebConcepts, a PHP-based ISV.
“There is truly huge business value to our company as a provider,” Young explained. “With Zend on Smart Business, we are able to eliminate almost all on-site cost. These resources can now be deployed on other tasks and our business customers benefit from a much lower cost of deployment.”
“The benefits of Smart Market and Smart Business are that they allow WebConcepts to reach businesses and markets that in the past we could not reach with our PHP applications and deliver them quickly and easily, both for us and for our end-customers.”
About Zend Technologies Zend Technologies, Inc., the PHP Company, is the leading provider of products and services for developing, deploying, and managing business-critical PHP applications. PHP is used by more than 20 million web sites and has quickly become the most popular language for building dynamic web applications. Deployed at more than 27,000 companies worldwide, the Zend family of products is a comprehensive platform for supporting the entire lifecycle of PHP applications. Zend is headquartered in Cupertino, California.
For more information, please visit http://www.zend.com or call +1 408-253-8800.
Media Contact: Bradford Cottel Zend Technologies +1 408 253 8812 pr@zend.com
One of the things we love most about blogging is the community it builds. One blog post can create a dialogue across the web that features divergent opinions, thoughtful comments and a real sense of conversation.
The Question of the Day on Vox has helped us spark some of those conversations amongst bloggers who might otherwise suffered from a case of writer’s block. Because we’ve seen such great success with the Vox QotD, we decided to introduce the same feature to TypePad. We are really excited to see how this new feature inspires creativity amongst TypePad bloggers and their loyal readers.
Learn more about the TypePad Question of the Day in the FAQ and let us know if you have a question you’d like to ask!
If your question is chosen, we will publish it, along with a “submitted by” message and a link to your blog. It’s a great way to connect with bloggers, and also to get more readers to your blog. Please keep in mind that QotDs should appeal to a wide audience and should be no more than 95 characters.
You can send your submissions for QotDs to qotd@typepad.com.
On Saturday May 30 in San Francsico, we announced the MySpaceID WordPress Plugin at WordCamp SF 2009. Interest was so overwhelming that we ran out of flyers to hand out!
For those people who want more information, the plugin is available at:
http://wordpress.org/extend/plugins/wp-myspaceid/
Documentation on how to install it can be found at:
http://wiki.developer.myspace.com/index.php?title=MySpaceID_WordPress_Plug-in_Setup
If you have a self-hosted WordPress blog, the MySpaceID WordPress plugin lets your users log in with their MySpace credentials to leave comments. This brings a few advantages:
How awesome is that? In addition, the following features are coming soon:
This is the first release of this plugin, and as it undergoes several iterations in the coming months, we want to improve it with your input. Please make sure to post your suggestions and comments to our MySpaceID forum at http://developer.myspace.com/Community/forums/60.aspx.
We are really excited to be working with the WordPress community on a plugin that is a win-win for all. Currently, our plugin works only with self-hosted WordPress installations. If you have such an installation, make sure you install it and try it out!
Thanks to our developers who built this plugin: Chris Baker (www.myspace.com/christopherbbaker) and Steve Ng (www.myspace.com/stevenng, Twitter: @stevenng)!
Greetings Developers,
The first batch of MySpace Open Platform DevJam videos has been uploaded!
Please click on a link below to view the video, and also check out our DevJam page for the uploaded presentations.
MySpace Open Platform – State of the Union
Presented by:
Jason Oberfest, SVP of Business Development for MySpace
Gerardo Capiel, VP of Product for the MySpace Open Platform
Max Engel, Product Manager for MySpaceID and the MySpace Open Platform
Building a Business on MySpace
Presented by Dan Yue, Co-Founder of Playdom
http:/www.playdom.com
How to Port Apps to MySpace
Presented Sebastien de Halleux, Chief Operating Officer and Co-Founder of Playfish
http://www.playfish.com
A Case Study on Monetization
Presented by: A.T., EVP, Sales & Business Development of Zynga
http://www.zynga.com
Thanks to all who attended DevJam. It was great meeting with you.
We'll be uploading more videos as they become available.
Thanks,
Rhonda
Web development is a challenging job, so you need the very best web owner tools to get it done right. Whether it's SEO, programming, utilities, software or just keeping up on the latest trends; web owner tools are what you need to succeed. Give yourself a headstart on the competition, and bookmark Web Owner Tools today.