This document discusses Boomerang, a JavaScript tool that measures web page performance from the end user's perspective. It works by including a small snippet of JavaScript on web pages that measures load time, latency, and bandwidth and sends the results back to the server. It provides more accurate real-world performance metrics than lab testing alone. The document explains how Boomerang specifically measures latency by downloading small images repeatedly, bandwidth by progressively larger images, and load time using timestamps. Contributing code or plugins to the Boomerang open source project on GitHub can help improve it.
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
There’s no such thing as fast enough. You can always make your website faster. This talk will show you how. The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get tired and leave.In this talk we’ll start with the basics and get progressively insane. We’ll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they’ve changed over the years. We’ll also look at some great tools to help you.
Frontend Performance: De débutant à Expert à Fou FurieuxPhilip Tellis
Frontend Performance Beginner to Expert to Crazy Person
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get tired and leave.
In this talk we'll start with the basics and get progressively insane. We'll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
La performance front-end de débutant, à expert, à fou furieux !
La toute première condition nécessaire à une bonne expérience utilisateur est de pouvoir obtenir les octets de cette expérience avant que l'utilisateur ne se lasse et parte.
Nous débuterons cette conférence avec les bases pour progressivement devenir démentiel. Nous aborderons plusieurs des meilleurs pratiques de la performance front-end, quelques anti-patterns à éviter, le raisonnement derrière les règles, et comment ces dernières ont changé au fil des ans. Nous regarderons d'un peu plus près quelques très bon outils qui peuvent vous aider.
Frontend Performance: Expert to Crazy PersonPhilip Tellis
The document outlines steps for front-end performance optimization, beginning with basic techniques like caching, compression and domain sharing and progressing to more advanced strategies involving preloading, parallel downloads, and predicting response times. It was presented by Philip Tellis at WebPerfDays New York and includes references for further reading on topics like CDNs, TCP tuning, and the page visibility API.
RUM isn’t just for page level metrics anymore. Thanks to modern browser updates and new techniques we can collect real user data at the object level, finding slow page components and keeping third parties honest.
In this talk we will show you how to use Resource Timing, User Timing, and other browser tricks to time the most important components in your page. We’ll also share recipes for several of the web’s most popular third parties. This will give you a head start on measuring object level performance on your own site.
Frontend Performance: Beginner to Expert to Crazy Person (San Diego Web Perf ...Philip Tellis
The document outlines steps web performance experts take to optimize frontend performance, moving from beginner to advanced techniques. It starts with basic optimizations like enabling gzip, caching, and image optimization. It then discusses more advanced strategies like using a CDN, splitting JavaScript, auditing CSS, and parallelizing downloads. Finally it discusses very advanced techniques like pre-loading assets, detecting broken Accept-Encoding headers, and understanding how to optimize for HTTP/2. The document provides references for further information on each topic.
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
The document discusses front-end web performance optimization from beginner to expert levels. At the beginner level, it recommends starting with basic optimizations like measuring performance, enabling gzip compression, optimizing images, and caching. At the expert level, it discusses more advanced techniques like using a CDN, splitting JavaScript files, auditing CSS, and flushing content early. Finally, it outlines "crazy" optimizations like pre-loading assets, post-load fetching, and understanding round-trip network latency.
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
Boston Web Performance Meetup, April 22, 2014
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get fed up and leave. In this talk we'll start with the basics and get progressively insane. We'll go over several front-end performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
Schedule: 6:30, pizza
7:15: talk
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
The very first requirement of a great user experience is actually getting the bytes of that experience to the user before they they get fed up and leave.
In this talk we'll start with the basics and get progressively insane. We'll go over several frontend performance best practices, a few anti-patterns, the reasoning behind the rules, and how they've changed over the years. We'll also look at some great tools to help you.
The document appears to be a presentation on measuring real user experiences using Real User Monitoring (RUM) and analyzing the data. It discusses using RUM tools like Boomerang to collect data on user behavior and performance in real-time. The presentation then examines specific metrics collected like user patience, cache behavior, and how quickly new software versions are distributed based on the RUM data.
Improving 3rd Party Script Performance With IFramesPhilip Tellis
This document discusses using <IFRAME> tags to improve the performance of third party scripts. It describes how third party scripts normally block page loading and proposes using an iframe to load scripts asynchronously in parallel without blocking. It provides code for creating an iframe targeted to load scripts, handling cross-domain issues, and modifying the Method Queue Pattern to support iframes. The approach allows third party scripts to load without blocking the main page load.
The document discusses Boomerang, an open source tool for measuring real user performance on websites. It measures load times, bandwidth usage, latency and other metrics. Additional functionality can be added through plugins. The presentation encourages developers to use Boomerang to analyze user behavior, identify performance issues, and continuously improve sites based on real user data. It provides several examples of insights that can be gained, such as how performance varies by country, browser, and internet connection speed.
Abusing JavaScript to measure Web Performance, or, "how does boomerang work?"Philip Tellis
The document is a presentation about abusing JavaScript to measure web performance. It discusses using JavaScript to measure network latency, TCP handshake time, network throughput, DNS lookup time, IPv6 support and latency, and other performance metrics. It provides code examples for measuring each metric in JavaScript and notes challenges to consider. The presentation encourages the use of the open source Boomerang library for accurate performance measurement.
The Statistics of Web Performance AnalysisPhilip Tellis
If you're interested in measuring real user web performance, you'll find tools like boomerang or episodes quite handy. Some popular web frameworks even have modules that make it easy to add them to your site. However, what does one do once one has collected the data? How do you filter out the noise and get meaningful insights from the data?
In this talk, I'll go over the techniques we've picked up by analyzing millions of datapoints daily. I'll cover some simple rules to filter out invalid data, and the statistics to analyze and make sense of what's left. Do you use the mean, median or mode? What about the geometric mean and standard deviation? How confident are we in the results? And finally, why should we care?
This talk should help you gain useful insights from a histogram, or at the very least point you in the right direction for further analysis.
Abusing JavaScript to Measure Web PerformancePhilip Tellis
While building boomerang, we developed many interesting methods to measure network performance characteristics using JavaScript running in the browser. While the W3C's NavigationTiming API provides access to many performance metrics, there's far more you can get at with some creative tweaking and analysis of how the browser reacts to certain requests.
In this talk, I'll go into the details of how boomerang works to measure network throughput, latency, TCP connect time, DNS time and IPv6 connectivity. I'll also touch upon some of the other performance related browser APIs we use to gather useful information. I will NOT be covering the W3C Navigation Timing API since that's been covered by Alois Reitbauer in a previous Boston Web Perf talk.
The document discusses analyzing real user monitoring (RUM) data to gain insights into website performance and user behavior. It describes building plugins to collect navigation and timing data from browsers. Various statistical techniques for analyzing the data are covered, including log-normal distributions, filtering outliers, sampling, and correlating metrics like page load time and bounce rates. The analysis of an example 8 million page dataset suggests very fast or slow page loads are associated with higher bounce rates, and thresholds for user-unfriendly performance are proposed based on bounce rates exceeding 50%.
Analysing network characteristics with JavaScriptPhilip Tellis
This document contains slides from a presentation about using JavaScript to analyze network performance. It discusses how to measure latency, TCP handshake time, network throughput, DNS lookup time, IPv6 support and latency, and private network scanning using JavaScript. Code examples are provided for measuring each of these network metrics by making image requests and timing the responses. The presentation emphasizes that accurately measuring network throughput requires requesting resources of different sizes and accounting for TCP slow start. It also notes some challenges around caching and geo-located DNS results.
A Node.JS bag of goodies for analyzing Web TrafficPhilip Tellis
This document is a presentation about analyzing web traffic using Node.js modules. It introduces Node.js and the npm package manager. It then discusses modules for parsing HTTP logs, including parsing user agents, handling IP addresses, geolocation, and date formatting. It also covers modules for statistical analysis like fast-stats, gauss, and statsd. The presentation provides code examples for using these modules and takes questions at the end.
Messing with JavaScript and the DOM to measure network characteristicsPhilip Tellis
This document discusses using JavaScript to analyze network performance. It covers measuring latency, TCP handshake time, DNS lookup time, network throughput, and IPv6 support. The document provides code examples for measuring each of these metrics using JavaScript and analyzing image load times. It notes that network conditions vary and accurate measurements require statistical analysis over many samples.
Boomerang: How fast do users think your site is?Philip Tellis
This document discusses how the Boomerang tool works to measure website performance from the end user's perspective. Boomerang is a piece of JavaScript code that measures network latency and throughput to the website, as well as page load time, and sends this performance data back to the website owners. It provides more accurate real-world performance metrics than lab testing by measuring performance across varying user devices, browsers, networks and other conditions that are outside the owners' control.
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Bert Blevins
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
Choose our Linux Web Hosting for a seamless and successful online presencerajancomputerfbd
Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently.
Visit- https://onliveserver.com/linux-web-hosting/
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Coordinate Systems in FME 101 - Webinar SlidesSafe Software
If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights.
During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to:
- Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value
- Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems
- Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors
- Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported
- Look Ahead: Gain insights into where FME is headed with coordinate systems in the future
Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfNeo4j
Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc
Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk.
What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year?
Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year.
This webinar will review:
- Key changes to privacy regulations in 2024
- Key themes in privacy and data governance in 2024
- How to maximize your privacy program in the second half of 2024
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...Toru Tamaki
Jindong Gu, Zhen Han, Shuo Chen, Ahmad Beirami, Bailan He, Gengyuan Zhang, Ruotong Liao, Yao Qin, Volker Tresp, Philip Torr "A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models" arXiv2023
https://arxiv.org/abs/2307.12980
YOUR RELIABLE WEB DESIGN & DEVELOPMENT TEAM — FOR LASTING SUCCESS
WPRiders is a web development company specialized in WordPress and WooCommerce websites and plugins for customers around the world. The company is headquartered in Bucharest, Romania, but our team members are located all over the world. Our customers are primarily from the US and Western Europe, but we have clients from Australia, Canada and other areas as well.
Some facts about WPRiders and why we are one of the best firms around:
More than 700 five-star reviews! You can check them here.
1500 WordPress projects delivered.
We respond 80% faster than other firms! Data provided by Freshdesk.
We’ve been in business since 2015.
We are located in 7 countries and have 22 team members.
With so many projects delivered, our team knows what works and what doesn’t when it comes to WordPress and WooCommerce.
Our team members are:
- highly experienced developers (employees & contractors with 5 -10+ years of experience),
- great designers with an eye for UX/UI with 10+ years of experience
- project managers with development background who speak both tech and non-tech
- QA specialists
- Conversion Rate Optimisation - CRO experts
They are all working together to provide you with the best possible service. We are passionate about WordPress, and we love creating custom solutions that help our clients achieve their goals.
At WPRiders, we are committed to building long-term relationships with our clients. We believe in accountability, in doing the right thing, as well as in transparency and open communication. You can read more about WPRiders on the About us page.
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Comparison Table of DiskWarrior Alternatives.pdfAndrey Yasko
To help you choose the best DiskWarrior alternative, we've compiled a comparison table summarizing the features, pros, cons, and pricing of six alternatives.
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Boomerang at FOSS.IN/2010
1. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Measuring the web with boomerang
Philip Tellis / philip@bluesmoon.info
FOSS.IN/2010 – 2010.12.15
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
2. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
$ finger philip
Philip Tellis
philip@bluesmoon.info
@bluesmoon
geek - paranoid - speedfreak
yahoo
http://bluesmoon.info/
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
3. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
4. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
5. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
6. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Less than 20% of page load time is something we can measure
and fix during development
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
7. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
It’s what we can’t control that bites us
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
8. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
browsers
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
9. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
plugins
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
10. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
OSes
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
11. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
viruses
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
12. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
antiviruses
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
13. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
microwaves
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
14. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
baby monitors
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
15. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
naughty neighbours
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
16. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
file shares
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
17. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
governments
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
18. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
rodents
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
19. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
Too many variations
Try simulating all that in the lab!
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
20. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
We need to measure real end-user performance
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
21. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
We need to measure real end-user performance from the real
end-user’s box
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
22. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
23. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
While this might work, it isn’t necessarily representative
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
24. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
What about JavaScript?
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
25. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
boomerang is...
A piece of javascript that you add to your web page where it
measures and beacons back to you, the end user’s perceived
performance of your page
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
26. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
How?
<script src="boomerang.js" type="text/javascript">
</script>
<script type="text/javascript">
BOOMR.init({
user_ip: "<user’s ip address>",
beacon_url: "http://mysite.com/beacon.php"
});
</script>
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
27. Introduction
Time
How does it work?
The adversary
Contributing to boomerang
Measure twice
Using boomerang
boomerang
Data
What does it do?
Measures user’s network throughput and latency to your
server
Measures the current page’s load time
Beacons these results back to your server
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
28. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
How does boomerang work?
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
29. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
Let’s take that one at a time
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
30. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
Measuring latency
Download a 32 byte gif 10 times in sequence
Measure the time to download each
Discard the first measurement because it’s overpriced
Calculate the arithmetic mean, standard deviation and
margin of error of the rest
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
31. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
Wait, did you say overpriced?
The first image might require a DNS lookup and TCP
handshake
Slow start is not an issue since 32 bytes fit in 1 packet
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
32. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
Measuring throughput
After the latency test is done, we download progressively
larger images
Stop at the first image that times out
Redownload that image a few more times
Calculate the median, standard deviation and margin of
error of the largest images
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
33. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
Measuring latency before throughput helps here
Those 10 latency images do a lot to widen the TCP
window size
The bandwidth images make much better use of available
bandwidth
The image we end with uses the most bandwidth
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
34. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
How do we measure page load time?
In the onbeforeunload event, measure the time and
store it in a cookie
In the onload event, check the cookie, and measure the
difference with the current time
We also make sure that the page that set the cookie is the
referrer of the current page
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
35. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
What? Two pages?
Yes, this needs two pages and cookies. If those aren’t
supported, we try to use the WebTiming API.
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
36. Introduction
Latency
How does it work?
Bandwidth/Throughput
Contributing to boomerang
Load time
Using boomerang
Accuracy
Data
How accurate is it?
Latency measurements are very accurate (±1%)
Bandwidth is to an order of magnitude. For bad
connections can be ±30%
Page load time sometimes has outliers, you need
post-filtering
The margin of error tells you how good your data is
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
37. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Github
https://github.com/yahoo/boomerang/
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
38. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Get the code
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
39. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Get the code
git clone
git@github.com:yourname/boomerang.git
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
40. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Submit code
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
41. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
boomerang.js
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
42. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
plugins
cp plugin.js yourplugin.js
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
43. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
The Makefile
make PLUGINS="plugin list" MINIFIER="/minifier/path"
make usage
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
44. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
Include it on your page
<script src="boomerang.js" type="text/javascript">
</script>
<script type="text/javascript">
BOOMR.init({
user_ip: "<user’s ip address>",
beacon_url: "http://mysite.com/beacon.php"
});
</script>
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
45. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
For most sites, that’s about it
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
46. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
You probably want to do more
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
47. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
Handle subdomains
Set the site_domain parameter:
BOOMR.init({
user_ip: "<user’s ip address>",
beacon_url: "http://mysite.com/beacon.php",
site_domain: "mysite.com"
});
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
48. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
This lets you measure transitions across *.mysite.com
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
49. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
Measure more than just load time
<html><head>
<script>var t_pagestart=new Date().getTime();</scrip
...
<script>var th=new Date().getTime();</script>
</head>
<body>
...
<script>var tj=new Date().getTime();</script>
...
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
50. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
...
<script src="boomerang.js"></script>
...
var te=new Date().getTime();
BOOMR.plugins.RT.setTimer("t_head", th-t_pagestart).
setTimer("t_body", te-th).
setTimer("t_js", te-tj);
</script></body></html>
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
51. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
This adds the t_head, t_body and t_js fields to the beacon
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
52. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
Loading dynamic content
BOOMR.init({
user_ip: "<user’s ip address>",
beacon_url: "http://mysite.com/beacon.php",
auto_run: false
});
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
53. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
Loading dynamic content
// Just before download starts
BOOMR.plugins.RT.startTimer("t_done");
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
54. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
Loading dynamic content
// Just after download finishes
BOOMR.plugins.RT.done();
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
55. Introduction Basic
How does it work? Multi-domain
Contributing to boomerang In-page timers
Using boomerang AJAX
Data
Much more
http://yahoo.github.com/boomerang/doc/howtos/
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
56. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
The beacon
GET request to the beacon URL (response ignored)
All parameters passed in the query string
Extra timers are passed in as a comma separated list in
t_other
before_beacon JavaScript event fired just before the
beacon is sent
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
57. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
What should we do with the data?
Sanity checking to:
Remove fake data
Remove abusive data
Maybe just rate limiting
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
58. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
What can we do with the data?
Statistical analysis to:
Remove outliers
Aggregate based on bandwidth blocks
Measure trends over time and correlate them with code
changes
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
59. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
Bandwidth blocks
Ref: Analysing Bandwidth & Latency – YUI Blog
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
60. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
Bandwidth blocks
Data points from some countries may require narrower bands
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
61. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
Geographic data
Looking at latency from different geographic locations can tell
you where your next mirror should be
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
62. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
ISPs
Grouping data by ISP can tell you who’s behaving badly
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
63. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
More data
Write plugins to get more performance data
We already have a DNS plugin
I’m thinking of an IPv6 v/s IPv4 plugin
What about a full WebTiming plugin?
Can we measure connection setup time?
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
64. Introduction
How does it work? shoulda
Contributing to boomerang coulda
Using boomerang woulda
Data
You decide
Once you have the data, you can do anything with it
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
65. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Thank you
http://github.com/yahoo/boomerang
http://yahoo.github.com/boomerang/doc/
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
66. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Photo credits
flickr.com/photos/21233184@N02/4389412851
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
67. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
Contact me
Philip Tellis
philip@bluesmoon.info
@bluesmoon
geek - paranoid - speedfreak
yahoo
http://bluesmoon.info/
slideshare.net/bluesmoon
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang
68. Introduction
How does it work?
Contributing to boomerang
Using boomerang
Data
References
github.com/yahoo/boomerang
More bandwidth doesn’t matter (much) – Mike Belshe
Analysing Bandwidth & Latency – YUI Blog
It’s the latency, stupid – Stuart Cheshire
The statistics of web performance
FOSS.IN/2010 – 2010.12.15 Measuring the web with boomerang