We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Check Yourself Before You Wreck Yourself

00:00

Formal Metadata

Title
Check Yourself Before You Wreck Yourself
Subtitle
Auditing and Improving the Performance of Boomerang
Title of Series
Number of Parts
490
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site. We recently performed and shared an audit of Boomerang's performance, to help communicate its "cost of doing business", and in doing so we found several areas of code that we wanted to improve. We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture for our library to ensure we're having as little of an impact as possible on the sites we're included on. Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences. Boomerang runs on billions of page loads a day, either via the open-source library or as part of Akamai's mPulse RUM service. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site. Recently, we performed and shared an audit of Boomerang's performance, to help communicate the "cost of doing business" of including Boomerang on a page while it takes its measurements. In doing the audit, we found several areas of code that we wanted to improve and have been making continuous improvements ever since. We've taken ideas and contributions from the OSS community, and have built a Performance Lab that helps "lock in" our improvements by continuously measuring the metrics that are important to us. We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture on our library to ensure we're having as little of an impact as possible on the sites we're included on.
HypermediaWeb 2.0Library (computing)Open sourceComputer animationLecture/Conference
Software testingReal numberSource codeLibrary (computing)Library (computing)Real numberOpen sourceWebsiteCharacteristic polynomialWeb pageRing (mathematics)Data managementProduct (business)Repository (publishing)Real-time operating systemImpulse responseLecture/ConferenceComputer animation
Software testingReal numberLibrary (computing)Source codeWeb pageReal numberWebsiteScripting languageProduct (business)Sound effectImpulse responsePerspective (visual)XMLComputer animation
Software testingSource codeReal numberLibrary (computing)Overhead (computing)Library (computing)Product (business)1 (number)Multiplication signRight angleLecture/ConferenceComputer animation
Library (computing)Scripting languageFiber bundleLibrary (computing)Scripting languageBoss CorporationWeb 2.0Line (geometry)WebsiteWeb-DesignerRight angleComputer animation
Boss CorporationScripting languageSoftware developerLibrary (computing)SynchronizationFiber bundleWebsiteWeb pageComponent-based software engineeringTorusEstimationSource codeScripting languageWeb pageLine (geometry)WebsiteLibrary (computing)Context awarenessStructural loadQuicksortStatisticsOpen sourceGame controllerProcess (computing)MeasurementRevision controlSource codeXML
EstimationSource codeStructural loadWeb pageCombinational logicWeb pageRevision controlOpen sourceWeb browserDifferent (Kate Ryan album)Source codeMatrix (mathematics)Uniform resource locatorScripting languageCASE <Informatik>Library (computing)Row (database)Ferry CorstenJSONXMLUML
EstimationSource codeStructural loadWeb pageScripting languageStaff (military)Different (Kate Ryan album)Library (computing)Internet service providerScripting languageGraph coloringNumberWeb pageLecture/ConferenceXML
Scripting languageWeb pageWeightDivisorWeb pageWeightSingle-precision floating-point formatDivisorTotal S.A.NumberDifferent (Kate Ryan album)Library (computing)Medical imagingProcess (computing)Scripting languageRight angleLecture/ConferenceComputer animation
Web pageWeightDivisorVideo gameScripting languageBootingParsingCompilerEvent horizonRun time (program lifecycle phase)BootingCodeScripting languageCycle (graph theory)Video gameControl flowLibrary (computing)Web browserWeb pageFreewareData managementOnline helpProcess (computing)Event horizonEntire functionVariable (mathematics)Multiplication signSoftware developerLevel (video gaming)Graphical user interfaceWebsiteNumberProfil (magazine)Latent heatXMLComputer animation
ParsingWeb browserContent delivery networkScripting languageEvent horizonStructural loadInformationConfiguration spaceProfil (magazine)Cartesian coordinate systemGraphical user interfaceLatent heatFiber bundleOpen sourceWeb pageBootingLevel (video gaming)Process (computing)Asynchronous Transfer ModeArmVariable (mathematics)Military baseDescriptive statisticsCASE <Informatik>Computer animation
Video gameBootingScripting languageParsingCompilerRun time (program lifecycle phase)Event horizonGraphical user interfaceBlock (periodic table)SynchronizationTrigonometric functionsPhase transitionScripting languageWeb browserRight angleLine (geometry)Event horizonPrice indexGoogol2 (number)BootingAnalytic setContent (media)Complex (psychology)Different (Kate Ryan album)Library (computing)BitWordVoting40 (number)Flow separationState of matterCASE <Informatik>WeightJava appletFrame problemNatural numberDirected graphWater vaporLecture/ConferenceXML
BootingCompilerParsingEvent horizonRun time (program lifecycle phase)Content delivery networkStructural loadScripting languageComponent-based software engineeringVideo gameWeightWeb pageTime domainNatural numberBitProcess (computing)Structural loadScripting languageEndliche ModelltheorieRight angleMereologyFiber bundleLevel (video gaming)Web browserCartesian coordinate systemMedical imagingWeb pageAdditionSoftwareLibrary (computing)Bit rateAnalytic setWeightModule (mathematics)Lecture/ConferenceXML
ParsingCompilerVideo gameScripting languageBootingRun time (program lifecycle phase)Event horizonGoogle AnalyticsTwitterLibrary (computing)SoftwareData storage deviceWeb pageQuicksortStructural loadSampling (statistics)Order (biology)1 (number)Software testingLecture/ConferenceXML
Google AnalyticsTwitterBootingScripting languageVideo gameCompilerParsingRun time (program lifecycle phase)Event horizonError messageVideo trackingAlgebraArchitectureLibrary (computing)Open sourceRevision controlSingle-precision floating-point formatComputer architectureWeb pagePlug-in (computing)Latent heatPoint (geometry)Web browserMobile appError messageTrailScripting languageProcess (computing)Lecture/ConferenceJSONXML
ModemGUI widgetBootingVideo gameCompilerParsingRun time (program lifecycle phase)Event horizonWeb browserMoment (mathematics)Library (computing)Direct numerical simulationCASE <Informatik>Web 2.0Event horizonVariable (mathematics)Scripting languageUtility softwareGUI widgetBitMultiplication signWeb browserPhase transitionComplex (psychology)Structural loadLibrary (computing)Web pageMaxima and minimaRun time (program lifecycle phase)Control flow2 (number)WebsiteSource code
CompilerParsingVideo gameWebsiteScripting languageBootingRun time (program lifecycle phase)Event horizonHoaxTask (computing)Web pageWeb browserThread (computing)Interactive televisionoutputMereologyWeb browserAreaProcess (computing)Thread (computing)Point (geometry)MultilaterationPhase transitionBlock (periodic table)Control flowInteractive televisionWebsiteoutputTask (computing)Library (computing)Scripting languageCalculationWeb pageJSONXMLUMLLecture/Conference
Web pageWeb browserTask (computing)Thread (computing)outputParsingInteractive televisionVideo trackingBootingSoftware developerExtreme programmingDependent and independent variablesWebsiteBlogProfil (magazine)NumberDifferent (Kate Ryan album)Booting40 (number)Ring (mathematics)2 (number)Web browserSoftware bugSoftware repositoryFunction (mathematics)Complex (psychology)Software developerSampling (statistics)Scripting languageArithmetic progressionWeb pageComputer fileDisk read-and-write headGroup actionReal numberVideo gameFamilyMereologyBitNetwork topologyInternet service providerXMLLecture/ConferenceSource code
Software developerExtreme programmingExtreme programmingScripting languageMultiplication signStack (abstract data type)Different (Kate Ryan album)Point (geometry)System callOpen sourceLibrary (computing)FreewareMultilaterationLevel (video gaming)Electronic mailing listWeb pageTask (computing)Right angleLecture/ConferenceComputer animation
AlgebraReduction of orderRaw image formatSynchronizationFrame problemBootingWeb browserMathematical optimizationMessage passingHTTP cookieContent delivery networkDifferent (Kate Ryan album)BitArmScripting languageLibrary (computing)BootingWeb browserMultiplication signProfil (magazine)WebsiteCASE <Informatik>Structural load2 (number)XML
Raw image formatAlgebraReduction of orderSynchronizationQuadrilateralBootingMathematical optimizationHTTP cookieWeb pageMultiplication signAreaUniform resource locatorOpen sourceComputer wormData compressionStructural loadScripting languageBitAlgorithmFraction (mathematics)
Task (computing)BootingMathematical optimizationAlgorithmMessage passingReduction of orderContent delivery networkHTTP cookieAlgebra2 (number)WebsiteAreaPlug-in (computing)Web pageHTTP cookieBuildingOpen sourceContent (media)BitProduct (business)Message passingFood energySoftware bugPoint (geometry)CASE <Informatik>MathematicsRight angleArmXML
TrailHTTP cookieHash functionOperations researchBootingMathematical optimizationMessage passingContent delivery networkAlgebraHydraulic jumpMiniDiscComputer clusterUniform resource locatorUniform resource locatorPairwise comparisonHTTP cookieHash functionWeb pageSingle-precision floating-point formatReading (process)NumberDivisorAreaCartesian coordinate systemStructural loadPlug-in (computing)Multiplication signRegular graphGoodness of fitSoftware developerCode refactoringXMLComputer animation
Video trackingBootingParsingDifferent (Kate Ryan album)BootingState observerWeb browserWebsiteSheaf (mathematics)NumberSound effectMultiplication signEvent horizonGoodness of fitRight angleOverhead (computing)MathematicsElectronic mailing listFrequencyTrailXML
Continuous functionProduct (business)Process (computing)Software testingSuite (music)Metric systemContinuous trackBefehlsprozessorPlug-in (computing)Online helpConcentricMultiplication signDifferent (Kate Ryan album)Task (computing)StatisticsCountingComa BerenicesReal-time operating systemMeasurementEvent horizonMetric systemLibrary (computing)Suite (music)WordProcess (computing)Line (geometry)Integrated development environmentProduct (business)CodeBit rateProfil (magazine)Web browserBefehlsprozessorSoftware testingLinear regressionXML
Task (computing)Error messageMotion captureScripting languageRun time (program lifecycle phase)Event horizonLine (geometry)Different (Kate Ryan album)StatisticsTask (computing)Web browserRevision controlCodeRight angleSampling (statistics)Virtual machineError messageSoftware developerPhysical systemReal-time operating systemSubsetProfil (magazine)Tracing (software)Scripting languageSystem callJava appletLibrary (computing)Message passingComputer animation
Boss CorporationSoftware developerScripting languageLibrary (computing)InformationSynchronizationWeightMereologyWeb pageScripting languageBoss CorporationChecklistLibrary (computing)Web applicationMobile appCache (computing)Content delivery networkOnline helpRight angleVideo gameGoodness of fitDebuggerRange (statistics)Inclusion mapNatural numberKey (cryptography)InformationRippingMixture modelSoftware bugSoftwareProfil (magazine)Metropolitan area networkWordXMLComputer animationLecture/Conference
Electronic mailing listChecklistWeb pageScripting languageFreewareUniform resource locatorLibrary (computing)CuboidProcess (computing)Link (knot theory)Slide ruleComputer animation
Link (knot theory)Library (computing)Slide ruleSolid geometryHTTP cookieProfil (magazine)NumberMiniDiscBitState of matterCache (computing)Right angleBit rateData storage deviceXML
Library (computing)MereologyInteractive televisionError messageFrame problemWeb 2.0Profil (magazine)Pairwise comparisonProduct (business)WebsiteThread (computing)Graphical user interfaceWeb pageReal-time operating systemDemosceneService (economics)BitLecture/Conference
Point cloudOpen source
Transcript: English(auto-generated)