WebPerfDays: Web Performance is everywhere
Key take-aways from WebPerfDays, the un-conference that takes a deep dive into every aspect of web performance
Q. Where do you address web performance?
That’s what I heard again at again at the recent WebPerfDays, the insider conference that takes a deep dive into every aspect of web performance.
Increasingly, enterprises are understanding that they cannot isolate performance to the browser. To address performance really effectively, they need to adopt a holistic view from the browser to the software to the application stack and the hardware. They also have to look around the world and consider all the different ways people are accessing the web, from smart phones to flip phones, the latest browsers, and much older ones.
WebPerfDays is a great follow-up to the Velocity conference on web operations and performance. Billed as an un-conference that starts the day after Velocity wraps up, it’s a place where industry folks gather in a more informal setting to discuss in-depth the state of the industry and the direction in which it is headed. This year’s event covered web performance from every angle, from web browsers, to mobile, IoT, graphic3D, and full stack performance.
Beyond the browser and to the cursor
At YouTube, Rick Viscomi and his team are looking at new ways to improve performance on different browsers. But they’re also looking beyond the browser, experimenting with improving the user-experienced performance with client-server optimizations, from protocols like SPDY to investigating user’s cursor movements to predict their next requests. Also, check your HEAD! The way you order elements in the head can significantly impact performance. This blog — Get your HEAD in order — offers some good advice on optimal HEAD ordering.
No one-size-fits-all solutions for optimal performance
CloudFare took an end-to-end look at the performance in the cloud, and highlighted three main areas.
- Data interchange, or the client-server communication. There are a lot of views on what is best: JSON? XML? SOAP? BSON? Protocol Buffers?
- Data fetching/storing. This covers performance in the database. Here there are different solutions in three key areas and it is very likely that in a single application one would need more than one solution, depending on the data:
Also here there are a few solutions, like CouchBase, MongoDB, SimpleDB, ElasticSearch.
- Relational DB: Complex Data, Simple relationship. And here there are solutions like Percona, MariaDB, Postgres, etc.
- Key Values: simple data, lots of reads, few writes, like Redis
- Document storage: Complex data, lots of reads, few writes, data is “constant.
For each area, many solutions are available and it’s important to understand that there really is no one-size-fits-all solution. You need to know your options and understand the best solutions for the particular challenges you’re addressing.
But how do you know what is best for you? You can use benchmarking tools, but you shouldn’t rely on benchmarking results. Use cases may help your enterprise select a solution but you should not rely exclusively on results of use cases. Your application is unique. If you utilize use cases to select a solution, you can add performance testing to your CI tools, as regression tests on your application performance.
Performance is global
For the IoT (Internet of Things) it is not just about speed but also size! Size matters and Arduino Yún offers a low cost efficient microcontroller board with a Linux processor on top. The board was used to run some demos on a wide range of phones, from the latest iPhones and Androids that so many of us take for granted, to the older and cheaper phones that are still widespread, especially in developing countries. If we think about performance from a global perspective, we have to address performance on all of these older phones.
It’s an interesting paradox that at the same time we are focusing on cutting edge technologies and solutions, we also need to keep in mind that many people in emerging markets — who account for a huge share of the global market — are still using old technology. Performance is a global issue and we need to pursue good performance on smart phones and flip phones alike if we are going to cover a global market.
In China, for example, Windows XP and IE are still the default, and 95% of web activity is through Wi-Fi, with rural areas based on cell phones only. The situation is similar in Africa. All of this old technology can be the source of bottlenecks if it is not addressed. Efficiency, then, is not just about more power and features, but also on providing acceptable performance ⬦ everywhere.
Performance on the full page
WebGL is also an important piece of 3D performance. Tony Parisi outlined the pros and cons of a library that is now being supported also by iOS8 and Safari. And performance is key for images since the Full page is coming back. The latest trend for home pages is a small page where all the content can be quickly taken in and scrolling to the bottom is not necessary. Clearly, this content has to display as fast as possible.
We all want to optimize our performance, but we can only optimize what we can measure. And being able to measure your own application performance is far more important than just considering generic versions of the latest technologies. Just think about how different your car’s mileage is on the highway versus in the city. You need to consider your own unique technology. This was a message that I heard again and again at WebPerfDays, and it’s a conviction that is at the core of our work at Nouvola.
What are your thoughts on performance? You can contact me directly with your comments and inputs via paola dot rossaro at nouvola dot com or you can find me on Twitter at @prossaro and @nouvolatech.
- Compute: this is the computational component of the application. And there are tools like Map-reduce, stored procedures, and different languages, from Lua, to Go, to C, C++, C#, Bash, Php. When addressing performance from this perspective, it is best to know multiple languages and use the best one for the particular problem.