Man vs. Machine Learning-Based Optimizations
In the previous post I introduced the application optimization quadrant, rating some popular FEO techniques in terms of performance impact, reliability, and time to implement. The challenge with many of these optimizations is that they rely on humans to write the code and determine the optimal settings, but humans are prone to error. This is why Instart Logic realized that in order to optimize an application, a different approach was needed – one that harnessed the power of machine learning to deliver the most reliable, high performance optimizations in the least amount of time. Today I will be re-visiting that quadrant to add Instart Logic’s application optimizations, which utilize machine-based learning techniques.
Machine learning is ideal in situations where you cannot code the rules, you cannot scale, or the environment is continually changing. When rules become too complex due to the number of variables and they need to be finely tuned, it becomes difficult for a human to accurately perform the task. Take the case of image optimization. To optimize an image, the following factors need to be considered: what browser is being used, what the dimensions of the image are, at what point does image quality begin to degrade, what image format provides the best image in terms of quality and size... the list goes on. For a human to determine the ideal settings for an image could take days as different permutations are applied and examined. Most applications have more than one image, and new images can be added on a daily or hourly basis, so going through the painstaking process of determining the ideal image settings manually is essentially impossible. This is why most image optimization solutions set a single best-guess compression level for all images and call it good.
Machine learning is all around you – in the suggestions that Amazon and Netflix provide, in the suggested friends and posts visible in your Facebook feed, and the facial recognition capabilities of your camera. And if you are an Instart Logic customer, it is in your application optimization. As traffic flows through the Instart Logic system, our machine-based learning system works in conjunction with feedback received from the Nanovisor, our client-side web application virtualization layer, to determine which pieces of code are being executed, and the similarities and differences between the images being served and other images we have previously seen. As the feedback from the client is fed back to our algorithms in the cloud, they learn how to better optimize content across devices and users. The information obtained from the client-cloud architecture of the Nanovisor and the machine learning algorithms determine how to best optimize content at run-time and deliver content to end users without running the risk of breaking the application.
The Application Optimization Quadrant Revisited
The application optimization quadrant below includes traditional front end optimization (FEO) techniques plotted along with some of Instart Logic’s machine-based learning application optimization techniques. The purple dots represent traditional FEO techniques, while the blue dots represent Instart Logic features. The y-axis is the measurement of the performance impact, the x-axis is the measurement of the reliability of the implementation, and the size of the dot reflects the amount of time required for implementation (the larger the dot, the more time consuming).
High Performance, High Reliability
You may quickly notice that there are two dots for Image Optimization. No ,this is not a mistake. Image Optimization is a set of techniques available through traditional FEO and also through Instart Logic that include image transcoding and image adaptation. Image optimization performed by Instart Logic is less time-consuming, more reliable and scales to millions of images, as the work is being done by computers. It provides a better performance improvement, as each image is tuned with the best settings for that specific image and end user. No more leaving bytes on the table.
Low Performance, High Reliability
When a third-party component is taking an excessive amount of time to load, the Instart Logic service will bypass it and deliver all other content first, eliminating the chance for users to blame your application for sluggish behavior.
Optimizations in Action
In the previous post, I shared some examples of how minification and concatenation can impact page load time and page weights. I tested the same page with Instart Logic optimizations in place. Applying concatenation and minification results in an 8% improvement in start render time from the origin. Using Instart Logic yields a 24% improvement from the origin.
Humans are prone to error. We are influenced by outside forces such as personal biases, and have limited amounts of time as we need to do things like eat and sleep. Computers can operate 24 hours a day, 7 days a week, allowing them to process much more information than a mere mortal can. Using machines to help us optimize applications based on the low reliability and high implementation costs associated with traditional FEO techniques takes the headache away.
As end users’ demands and expectations increase in terms of response times and customizations, traditional methods of application delivery and optimization need to be revisited. To get pages to load in under 3 seconds for any user on any device requires in-depth knowledge of the application and the best possible optimization settings. This can only be achieved by utilizing the intelligence available from machines.