Top Banner
© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Developer Tools #WWDC16 Session 420 Optimizing Web Content in Your App Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer
155

Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Oct 05, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

Developer Tools #WWDC16

Session 420

Optimizing Web Content in Your App

Jon Davis Web Technologies EvangelistBrian Burg Safari and WebKit Engineer

Page 2: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 3: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 4: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Web Inspector

Page 5: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 6: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 7: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 8: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 9: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Page 10: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 11: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

JSContext

Page 12: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 13: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Introducing Safari View Controller WWDC 2015

Page 14: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 15: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

WKWebView

Page 16: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Introducing Safari View Controller WWDC 2014

Page 17: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 18: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Web Inspector

Page 19: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 20: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 21: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 22: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 23: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 24: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 25: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 26: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Key Type Value

▼ Entitlements File Dictionary (1 item)

com.apple.webinspector.allow Boolean YES

Page 27: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 28: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 29: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 30: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Profiling JavaScript

Page 31: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Sampling Profiler

NEW

Page 32: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Sampling ProfilerProfiling JavaScript

Where is the time being spent?

Page 33: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Sampling ProfilerProfiling JavaScript

Where is the time being spent?Samples the stack every millisecond

Page 34: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Sampling ProfilerProfiling JavaScript

Where is the time being spent?Samples the stack every millisecondRuns with all four tiers of the JIT compiler

Page 35: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Sampling ProfilerProfiling JavaScript

Where is the time being spent?Samples the stack every millisecondRuns with all four tiers of the JIT compilerBreakpoints and debugger statements are ignored

Page 36: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

JavaScript Profiling Speed Improvement

30×Up to

Page 37: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Events viewProfiling JavaScript

Page 38: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 39: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 40: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 41: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 42: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 43: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 44: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 45: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 46: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Events viewProfiling JavaScript

•Events view is helpful, but there is another view that we've added for you…

Page 47: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Call Trees viewProfiling JavaScript

NEW

Page 48: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 49: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 50: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 51: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 52: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 53: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 54: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 55: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 56: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 57: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 58: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 59: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

DemoJavaScript profiling

Brian BurgSafari and WebKit Engineer

Page 60: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

SummaryProfiling JavaScript

Profiling so fast it's accurate

Page 61: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

SummaryProfiling JavaScript

Profiling so fast it's accurateFind slow handlers with the Events view

Page 62: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

SummaryProfiling JavaScript

Profiling so fast it's accurateFind slow handlers with the Events viewSee time costs pile up in the Call Trees view

Page 63: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

SummaryProfiling JavaScript

Profiling so fast it's accurateFind slow handlers with the Events viewSee time costs pile up in the Call Trees viewBottom Up view shows the best places to start optimizing

Page 64: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 65: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 66: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Memory timelineAnalyzing Memory

NEW

Page 67: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 68: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 69: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 70: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 71: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 72: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 73: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 74: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 75: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 76: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 77: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 78: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 79: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 80: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 81: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 82: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 83: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 84: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 85: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 86: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 87: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 88: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 89: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 90: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 91: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Memory timelineAnalyzing Memory

Page 92: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

JavaScript Allocations timelineAnalyzing Memory

NEW

Page 93: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

JavaScript Allocation Snapshots

Page 94: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

JavaScript Allocation Snapshots

Page 95: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 96: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 97: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 98: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 99: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 100: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 101: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 102: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

console.takeHeapSnapshot("Before login");

// Do some work ...

console.takeHeapSnapshot("After login");

NEW

Page 103: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

console.takeHeapSnapshot("Before login");

// Do some work ...

console.takeHeapSnapshot("After login");

NEW

Page 104: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

for (let entry of list) {

console.takeHeapSnapshot(entry.name);

// Do some more work ...

}

NEW

Page 105: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

for (let entry of list) {

console.takeHeapSnapshot(entry.name);

// Do some more work ...

}

NEW

Page 106: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

console.takeHeapSnapshot()Analyzing Memory

Snapshots can impact performance

Page 107: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

console.takeHeapSnapshot()Analyzing Memory

Snapshots can impact performanceUse in pairs around code doing work

Page 108: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

console.takeHeapSnapshot()Analyzing Memory

Snapshots can impact performanceUse in pairs around code doing workDon't leave in console.takeHeapSnapshot()

Page 109: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 110: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 111: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 112: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 113: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 114: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 115: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 116: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 117: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 118: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 119: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 120: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 121: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 122: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 123: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 124: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 125: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 126: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 127: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 128: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

DemoMemory and JavaScript Allocations timelines

Brian BurgSafari and WebKit Engineer

Page 129: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Memory and JavaScript Allocations timelinesAnalyzing Memory

Quickly see memory spikes to investigate

Page 130: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Memory and JavaScript Allocations timelinesAnalyzing Memory

Quickly see memory spikes to investigateTake heap snapshots to explore what keeps objects alive

Page 131: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Memory and JavaScript Allocations timelinesAnalyzing Memory

Quickly see memory spikes to investigateTake heap snapshots to explore what keeps objects aliveDon't leave in console.takeHeapSnapshot()

Page 132: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Memory and JavaScript Allocations timelinesAnalyzing Memory

Quickly see memory spikes to investigateTake heap snapshots to explore what keeps objects aliveDon't leave in console.takeHeapSnapshot()Snapshots can have a performance impact

Page 133: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Connecting Web Inspector

Profiling Javascript

Analyzing Memory

Page 134: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Next Steps

Page 135: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Next Steps

Consider upgrading to WKWebView

Page 136: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Next Steps

Consider upgrading to WKWebViewConnect Web Inspector to your app

Page 137: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Next Steps

Consider upgrading to WKWebViewConnect Web Inspector to your appSave time and deliver great performance

Page 138: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Next Steps

Consider upgrading to WKWebViewConnect Web Inspector to your appSave time and deliver great performanceStay updated on feature development

Page 139: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 140: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Web Inspector

Page 141: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

NEW

Page 142: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

JavaScript Call Trees

Quick Open

Visual Styles Sidebar

Memory Timeline

JavaScript Heap Objects

Sampling Profiler

Compare Heap Snapshots

Tail Call Stacks

Pseudo Elements in DOM Tree

takeHeapSnapshot

NEW

Page 143: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript
Page 144: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

WebKit

Page 145: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

WebKit

Page 146: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

NEW

Page 147: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Improved IndexedDB

<picture>CSP 2.0

International API

Shadow DOM

WOFF 2.0 100% ES6

WebDriver

CSS Variables Unprefixed CSS Filters

Proper Tail Calls

NEW

Page 148: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

WebKit

Page 149: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

WebKit.org

Page 150: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Safari

Page 151: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Safari Technology Preview

Page 152: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

More Information

https://developer.apple.com/wwdc16/420

Page 153: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Related Sessions

Extending Your App with Safari App Extensions Nob Hill Wednesday 4:00PM

Web Inspector and Modern JavaScript WWDC 2014

Introducing the Modern WebKit API WWDC 2014

What's New in Web Development in WebKit and Safari WWDC 2014

Introducing Safari View Controller WWDC 2015

Using Safari to Deliver and Debug a Responsive Web Design WWDC 2015

Page 154: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript

Labs

Safari and WebKit Lab Frameworks Lab C Friday 4:30 PM

Page 155: Optimizing Web Content in Your App€¦ · Jon Davis Web Technologies Evangelist Brian Burg Safari and WebKit Engineer. Web Inspector. Connecting Web Inspector Profiling Javascript