Writing Energy Efficient Code

Size: px
Start display at page:

Download "Writing Energy Efficient Code"

Transcription

1 Core OS #WWDC14 Writing Energy Efficient Code Part 1 Session 710 Anthony Chivetta OS X Performance & Power 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

2

3

4 9:41

5 What You ll Learn

6 What You ll Learn Power and energy concepts

7 What You ll Learn Power and energy concepts Improving your energy use

8 What You ll Learn Power and energy concepts Improving your energy use Do it never

9 What You ll Learn Power and energy concepts Improving your energy use Do it never Do it at a better time

10 What You ll Learn Power and energy concepts Improving your energy use Do it never Do it at a better time Do it more efficiently

11 What You ll Learn Power and energy concepts Improving your energy use Do it never Do it at a better time Do it more efficiently Do it less

12 What You ll Learn Power and energy concepts Improving your energy use Do it never Do it at a better time Do it more efficiently Do it less Part 2

13 What You ll Learn Power and energy concepts Improving your energy use Do it never Do it at a better time Do it more efficiently Do it less Part 2 Networking

14 What You ll Learn Power and energy concepts Improving your energy use Do it never Do it at a better time Do it more efficiently Do it less Part 2 Networking Location

15 What You ll Learn Power and energy concepts Improving your energy use Do it never Do it at a better time Do it more efficiently Do it less Part 2 Networking Location Sleep/Wake

16 What Uses Energy? CPU (not an exhaustive list)

17 What Uses Energy? CPU Storage (not an exhaustive list)

18 What Uses Energy? CPU Storage Networking (not an exhaustive list)

19 What Uses Energy? CPU Storage Networking Graphics (not an exhaustive list)

20 Fixed Costs Power Time

21 Fixed Costs Power Time

22 Fixed Costs Power Idle Power Time

23 Fixed Costs System Active Power Idle Power Time

24 Fixed Costs System Active Intermediate States Power Idle Power Time

25 Fixed Costs System Active Intermediate States Power Dynamic Cost Fixed Cost Idle Power Time

26 Fixed Costs Power Time

27 Fixed Costs Small Sporadic Work Power Time

28 Fixed Costs Small Sporadic Work Power Time

29 Fixed Costs Small Sporadic Work Power Time

30 Fixed Costs Power Time

31 Energy and Power Power Time

32 Energy and Power Power Power Time

33 Energy and Power Power Power Energy Time

34 Trading Power for Energy Power Single-Threaded Time

35 Trading Power for Energy Power Single-Threaded Time

36 Trading Power for Energy Power Single-Threaded Multi-Threaded Time

37 Power Fundamentals Work has a fixed cost For small workloads, this can dominate For intensive workloads, dynamic cost will dominate Better performance = less energy

38 Do It Never

39 Avoid Unneeded Work Your App Your Ad

40 Avoid Unneeded Work Your App Your Ad

41 Avoid Unneeded Work Your App Your Ad

42 Avoid Unneeded Work Your App Another App Your Ad

43 Active App Transitions ios - (void)applicationdidresignactive: (UIApplication *)application { // Pause animations and UI updates }! - (void)applicationdidbecomeactive: (UIApplication *)application { // Resume animations and UI updates }! Or, listen for the UIApplicationWillResignActiveNotification notification.

44 Active App Transitions OS X - (void)applicationdidresignactive:(nsnotification *)anotification { // Pause animations and UI updates }! - (void)applicationdidbecomeactive:(nsapplication *)anotification { // Resume animations and UI updates }! Or, listen for the NSApplicationDidResignActiveNotification notification.

45 Occlusion Notifications

46 Occlusion Notifications Occlusion notifications indicate visibility of windows or applications

47 Occlusion Notifications Occlusion notifications indicate visibility of windows or applications For applications, implement delegate method - (void)applicationdidchangeocclusionstate:(nsnotification *)notification Or check if ([NSApp occlusionstate] & NSApplicationOcclusionStateVisible)

48 Occlusion Notifications Occlusion notifications indicate visibility of windows or applications For applications, implement delegate method - (void)applicationdidchangeocclusionstate:(nsnotification *)notification Or check if ([NSApp occlusionstate] & NSApplicationOcclusionStateVisible) For windows, implement delegate method - (void)windowdidchangeocclusionstate:(nsnotification *)notification Or check if ([window occlusionstate] & NSWindowOcclusionStateVisible)

49 App Nap

50 App Nap App Nap reduces an inactive app s energy use

51 App Nap App Nap reduces an inactive app s energy use App Nap relies on heuristics

52 App Nap App Nap reduces an inactive app s energy use App Nap relies on heuristics You are the authoritative source for what work is important

53 App Nap App Nap reduces an inactive app s energy use App Nap relies on heuristics You are the authoritative source for what work is important In a well-behaved app, App Nap should never be in effect during work

54 App Nap App Nap reduces an inactive app s energy use App Nap relies on heuristics You are the authoritative source for what work is important In a well-behaved app, App Nap should never be in effect during work -NSProcessInfo (void)performactivitywithoptions:(nsactivityoptions)options reason:(nsstring *)reason usingblock:(void (^)(void))block

55 Avoiding Unnecessary Work Monitor app state to know when work isn t visible Avoid updating UI until the user can see the results Nap yourself when not in use, so App Nap doesn t have to

56 Do It at a Better Time

57 Do It at a Better Time On Power Battery Remaining 6AM Noon 6PM

58 Do It at a Better Time On Power Battery Remaining 6AM Noon 6PM

59 Do It at a Better Time User runs your app On Power Battery Remaining 6AM Noon 6PM

60 Do It at a Better Time User runs your app On Power Battery Remaining 6AM Noon 6PM

61 Do It at a Better Time User runs your app On Power Battery Remaining Window 6AM Noon 6PM

62 Do It at a Better Time User runs your app On Power Battery Remaining Window 6AM Noon 6PM

63 Do It at a Better Time User runs your app On Power Battery Remaining Window 6AM Noon 6PM

64 NSBackgroundActivityScheduler

65 NSBackgroundActivityScheduler New API in OS X Yosemite

66 NSBackgroundActivityScheduler New API in OS X Yosemite Allows scheduling arbitrary tasks for a good time in the future

67 NSBackgroundActivityScheduler New API in OS X Yosemite Allows scheduling arbitrary tasks for a good time in the future Supports repeating or non-repeating activities

68 NSBackgroundActivityScheduler New API in OS X Yosemite Allows scheduling arbitrary tasks for a good time in the future Supports repeating or non-repeating activities Can be used to schedule Periodic content fetch Update install Garbage collection and data maintenance tasks Automatic saves or backups

69 Creating a Scheduler activity = [[NSBackgroundActivityScheduler alloc] initwithidentifier:@ com.apple.sample-app.myactivity ];! Each activity must have an identifier Identifier should be in reverse-dns style Name should be unique, but the same across app runs com.example.myapp.updatecheck

70 Specifying Scheduling Properties // Activity will fire in the next 10 minutes activity.tolerance = 10 * 60;

71 Specifying Scheduling Properties // Activity will fire in the next 10 minutes activity.tolerance = 10 * 60; // Activity will fire between 15 and 45 minutes from now activity.interval = 30 * 60; activity.tolerance = 15 * 60;

72 Specifying Scheduling Properties // Activity will fire in the next 10 minutes activity.tolerance = 10 * 60; // Activity will fire between 15 and 45 minutes from now activity.interval = 30 * 60; activity.tolerance = 15 * 60; // Activity will fire once each hour activity.repeats = YES activity.interval = 60 * 60;

73 Scheduling Your Work

74 Scheduling Your Work [activity schedulewithblock:^(nsbackgroundactivitycompletionhandler completion){!!!!!! // do the work }]; completion(nsbackgroundactivityresultfinished);

75 Scheduling Your Work Deferring in-progress work [activity schedulewithblock:^(nsbackgroundactivitycompletionhandler completion){ for ( /* each item of work */) { if (activity.shoulddefer){ completion(nsbackgroundactivityresultdeferred); return; } // do item of work } completion(nsbackgroundactivityresultfinished); }];

76 Scheduling Your Work Deferring in-progress work [activity schedulewithblock:^(nsbackgroundactivitycompletionhandler completion){ for ( /* each item of work */) { if (activity.shoulddefer){ completion(nsbackgroundactivityresultdeferred); return; } // do item of work } completion(nsbackgroundactivityresultfinished); }];

77 NSBackgroundActivityScheduler You specify scheduling requirements for work

78 NSBackgroundActivityScheduler You specify scheduling requirements for work System select the best time to perform that work

79 NSBackgroundActivityScheduler You specify scheduling requirements for work System select the best time to perform that work Support for repeating tasks without drift

80 NSBackgroundActivityScheduler You specify scheduling requirements for work System select the best time to perform that work Support for repeating tasks without drift Available in OS X Yosemite or with the xpc_activity C API in 10.9

81 NSURLSession Background Session Your App

82 NSURLSession Background Session Your App NSURLRequest NSURLRequest NSURLRequest

83 NSURLSession Background Session Your App NSURLRequest NSURLSession with Background Session Configuration NSURLRequest NSURLRequest NSURLSessionDelegate

84 NSURLSession Background Session Your App Out of Process Session NSURLRequest NSURLRequest NSURLSession with Background Session Configuration Task Task NSURLRequest NSURLSessionDelegate Task

85 NSURLSession Background Session Your App Out of Process Session NSURLRequest NSURLRequest NSURLSession with Background Session Configuration Task Task NSURLRequest NSURLSessionDelegate Task

86 NSURLSession Background Session Out of Process Session Task Task Task

87 NSURLSession Background Session Out of Process Session Task Task Task

88 NSURLSession Background Session Your App Out of Process Session Task Task Task

89 NSURLSession Background Session Your App Out of Process Session NSURLSession with Background Session Configuration Task Task NSURLSessionDelegate Task + backgroundsessionconfigurationwithidentifier: com.example.mysessionidentifier

90 Discretionary Tasks

91 Discretionary Tasks configuration.discretionary = YES;

92 Discretionary Tasks configuration.discretionary = YES; Discretionary sessions available in ios 7.0 and OS X Yosemite

93 Discretionary Tasks configuration.discretionary = YES; Discretionary sessions available in ios 7.0 and OS X Yosemite Automatically picks the best time to do work

94 Discretionary Tasks configuration.discretionary = YES; Discretionary sessions available in ios 7.0 and OS X Yosemite Automatically picks the best time to do work Provides bandwidth monitoring and automatic retry

95 Discretionary Tasks configuration.discretionary = YES; Discretionary sessions available in ios 7.0 and OS X Yosemite Automatically picks the best time to do work Provides bandwidth monitoring and automatic retry Scheduling window can be adjusted with configuration.timeoutintervalforresource = 24*60*60; // 1 day If this time elapses, an error will be thrown Should be >12 hours

96 Related Session What s New in Foundation Networking Nob Hill Tuesday 3:15PM

97 Do It More Efficiently

98 Resource Management Properties Responsiveness Efficiency

99 Resource Management Properties Responsiveness Efficiency CPU Scheduler Priority I/O Priority

100 Resource Management Properties Responsiveness Efficiency CPU Scheduler Priority Timer Coalescing I/O Priority Throughput/Efficiency CPU Hints

101 Quality of Service Classes UI User Interactive Main thread, animations IN User Initiated Immediate results UT Utility Long-running tasks BG Background Not user visible

102 Choosing a QoS Class UI User Interactive Is this work actively involved in updating the UI? e.g., main thread, animations, input event processing IN User Initiated Is this work required to continue user interaction? e.g., loading active content UT Utility Is the user aware of the progress of this work? e.g., long-running jobs with progress indicators BG Background Can this work be deferred to a better time? e.g., if so, use NSBackgroundActivityScheduler

103 Choosing a QoS Class UI User Interactive Is this work actively involved in updating the UI? e.g., main thread, animations, input event processing IN User Initiated Is this work required to continue user interaction? e.g., loading active content UT Utility Is the user aware of the progress of this work? e.g., long-running jobs with progress indicators BG Background Can this work be deferred to a better time? e.g., if so, use NSBackgroundActivityScheduler

104 Choosing a QoS Class UI User Interactive Is this work actively involved in updating the UI? e.g., main thread, animations, input event processing IN User Initiated Is this work required to continue user interaction? e.g., loading active content UT Utility Is the user aware of the progress of this work? e.g., long-running jobs with progress indicators BG Background Can this work be deferred to a better time? e.g., if so, use NSBackgroundActivityScheduler

105 Choosing a QoS Class UI User Interactive Is this work actively involved in updating the UI? e.g., main thread, animations, input event processing IN User Initiated Is this work required to continue user interaction? e.g., loading active content UT Utility Is the user aware of the progress of this work? e.g., long-running jobs with progress indicators BG Background Can this work be deferred to a better time? e.g., if so, use NSBackgroundActivityScheduler

106 Choosing a QoS Class UI User Interactive Is it okay for User Interactive work to happen before my work? IN User Initiated Is it okay for this work to compete with other User Initiated work? UT Utility Is it okay for my work to take precedence over Utility work? BG Background

107 Choosing a QoS Class UI User Interactive Is it okay for User Interactive work to happen before my work? IN User Initiated Is it okay for this work to compete with other User Initiated work? UT Utility Is it okay for my work to take precedence over Utility work? BG Background

108 Choosing a QoS Class UI User Interactive Is it okay for User Interactive work to happen before my work? IN User Initiated Is it okay for this work to compete with other User Initiated work? UT Utility Is it okay for my work to take precedence over Utility work? BG Background

109 Effects of QoS Background

110 Effects of QoS User Initiated Background

111 Effects of QoS User Initiated Background

112 Effects of QoS Power Power Time Time User Initiated Background

113 Adoption Case Study PhotoMeister 3000 Search Converting (10/100) RAW Images

114 Adoption Case Study PhotoMeister 3000 Search User Interactive Main Thread (automatic) Converting (10/100) RAW Images

115 Adoption Case Study PhotoMeister 3000 Search User Interactive Main Thread (automatic) User Initiated Thumbnail generation Image load (on click) Converting (10/100) RAW Images

116 Adoption Case Study PhotoMeister 3000 Search User Interactive Main Thread (automatic) User Initiated Thumbnail generation Image load (on click) Utility Image import and conversion Converting (10/100) RAW Images

117 Adoption Case Study PhotoMeister 3000 Search User Interactive Main Thread (automatic) User Initiated Thumbnail generation Image load (on click) Utility Image import and conversion Background Search indexing Converting (10/100) RAW Images

118 Queue Structure Main Thread (User Interactive)

119 Queue Structure Thumbnail Generation NSOperationQueue Main Thread (User Interactive)

120 Queue Structure Thumbnail Generation NSOperationQueue Image Conversion NSOperationQueue Main Thread (User Interactive)

121 NSOperation(Queue) and QoS

122 NSOperation(Queue) and QoS NSOperation and NSOperationQueue now have a qualityofservice property: operation.qualityofservice = NSQualityOfServiceUtility;

123 NSOperation(Queue) and QoS NSOperation and NSOperationQueue now have a qualityofservice property: operation.qualityofservice = NSQualityOfServiceUtility; If set on both the operation and queue, the higher will be used

124 NSOperation(Queue) and QoS NSOperation and NSOperationQueue now have a qualityofservice property: operation.qualityofservice = NSQualityOfServiceUtility; If set on both the operation and queue, the higher will be used If not set, NSOperations will infer a QoS from the environment when possible

125 QoS Application Thumbnail Generation NSOperationQueue Image Conversion NSOperationQueue Main Thread (User Interactive)

126 QoS Application Thumbnail Generation NSOperationQueue User Initiated Image Conversion NSOperationQueue Main Thread (User Interactive)

127 QoS Application Thumbnail Generation NSOperationQueue User Initiated Image Conversion NSOperationQueue Utility Main Thread (User Interactive)

128 QoS Is Not Static The logical QoS of an operation may change over time e.g., when user requests the result of work that s already happening a lower QoS

129 QoS Is Not Static The logical QoS of an operation may change over time e.g., when user requests the result of work that s already happening a lower QoS With NSOperation, the QoS of an operation can be promoted by: Enqueueing a higher QoS operation on the same queue Using adddependency: with a higher QoS operation waituntilfinished: or waituntilalloperationsarefinished: from a higher QoS thread

130 Promotion Image Click Event Main Thread Image Conversion NSOperationQueue Utility

131 Promotion Image Click Event // Find operation for image Main Thread Image Conversion NSOperationQueue Utility

132 Promotion Image Click Event // Find operation for image operation.queuepriority = NSOperationQueuePriorityVeryHigh; Main Thread Image Conversion NSOperationQueue Utility

133 Promotion Image Click Event // Find operation for image operation.queuepriority = NSOperationQueuePriorityVeryHigh; operation.qualityofservice = NSQualityOfServiceUserInitiated; Main Thread Image Conversion NSOperationQueue Utility

134 Promotion Image Click Event // Find operation for image operation.queuepriority = NSOperationQueuePriorityVeryHigh; operation.qualityofservice = NSQualityOfServiceUserInitiated; Main Thread Image Conversion NSOperationQueue Utility

135 Your Turn Feed Reader 9000 Search News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

136 Your Turn Feed Reader 9000 Search Loading content News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

137 Your Turn Feed Reader 9000 Search Loading content User Initiated News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

138 Your Turn Feed Reader 9000 Search Loading content User Initiated Image pre-fetching News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

139 Your Turn Feed Reader 9000 Search Loading content User Initiated Image pre-fetching Background News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

140 Your Turn Feed Reader 9000 Search Loading content User Initiated Image pre-fetching Background Fetching new feeds News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

141 Your Turn Feed Reader 9000 Search Loading content User Initiated Image pre-fetching Background Fetching new feeds Requested by user User Initiated News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

142 Your Turn Feed Reader 9000 Search Loading content User Initiated Image pre-fetching Background Fetching new feeds Requested by user User Initiated Automatic Utility News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

143 Your Turn Feed Reader 9000 Search Loading content User Initiated Image pre-fetching Background Fetching new feeds Requested by user User Initiated Automatic Utility Search indexing News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

144 Your Turn Feed Reader 9000 Search Loading content User Initiated Image pre-fetching Background Fetching new feeds Requested by user User Initiated Automatic Utility Search indexing Background News! Neat Things! Cats! Kittens! 26 ways Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat accumsan tellus, eu imperdiet est elementum sed. Sed tincidunt, nibh ut consectetur posuere, est metus. Mauris in elementum orci, varius est. Sed fringilla velit a vestibulum sagi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Updating Feeds

145 Debugging QoS

146 Debugging QoS Set breakpoints to confirm requested QoS

147 Debugging QoS Set breakpoints to confirm requested QoS Use powermetrics to confirm which QoS is in use

148 Debugging QoS Set breakpoints to confirm requested QoS Use powermetrics to confirm which QoS is in use Use spindump to determine the QoS code is executing with

149

150

151

152

153

154 QoS Accounting % sudo powermetrics --show-process-qos --samplers tasks

155 QoS Accounting % sudo powermetrics --show-process-qos --samplers tasks *** Sampled system activity (Wed May 28 00:03: ) ( ms elapsed) ***! *** Running tasks ***! Name ID CPU ms/s User% MyApplication ! Deadlines (<2 ms, 2-5 ms) Wakeups (Intr, Pkg idle) ! QOS (ms/s) Default Maint BG Util Lgcy U-Init U-Intr

156 QoS Accounting % sudo powermetrics --show-process-qos --samplers tasks *** Sampled system activity (Wed May 28 00:03: ) ( ms elapsed) ***! *** Running tasks ***! Name ID CPU ms/s User% MyApplication ! Deadlines (<2 ms, 2-5 ms) Wakeups (Intr, Pkg idle) ! QOS (ms/s) Default Maint BG Util Lgcy U-Init U-Intr

157 QoS Accounting % sudo powermetrics --show-process-qos --samplers tasks *** Sampled system activity (Wed May 28 00:03: ) ( ms elapsed) ***! *** Running tasks ***! Name ID CPU ms/s User% MyApplication ! Deadlines (<2 ms, 2-5 ms) Wakeups (Intr, Pkg idle) ! QOS (ms/s) Default Maint BG Util Lgcy U-Init U-Intr

158 QoS Accounting % sudo powermetrics --show-process-qos --samplers tasks *** Sampled system activity (Wed May 28 00:03: ) ( ms elapsed) ***! *** Running tasks ***! Name ID CPU ms/s User% MyApplication ! Deadlines (<2 ms, 2-5 ms) Wakeups (Intr, Pkg idle) ! QOS (ms/s) Default Maint BG Util Lgcy U-Init U-Intr

159 Sampling QoS % sudo spindump -timeline MyApplication

160 Sampling QoS! % sudo spindump -timeline MyApplication Thread 0x6bb7a DispatchQueue samples (1-1000) priority cpu time 1.488s <thread QoS utility, priority 20> 1000 start_wqthread + 13 (libsystem_pthread.dylib ) [0x7fff82e73a01] _pthread_wqthread (libsystem_pthread.dylib ) [0x7fff82e75bd1] _dispatch_worker_thread (libdispatch.dylib ) [0x10002fa29] _dispatch_root_queue_drain (libdispatch.dylib ) [0x ] [AppDelegate applicationdidfinishlaunching:]_block_invoke (AppDelegate.m:25 in MyApplication ) [0x e5] 1-4 <thread QoS background> 2 45-[AppDelegate applicationdidfinishlaunching:]_block_invoke (AppDelegate.m:28 in MyApplication ) [0x e5] 1-4

161 Sampling QoS! % sudo spindump -timeline MyApplication Thread 0x6bb7a DispatchQueue samples (1-1000) priority cpu time 1.488s <thread QoS utility, priority 20> 1000 start_wqthread + 13 (libsystem_pthread.dylib ) [0x7fff82e73a01] _pthread_wqthread (libsystem_pthread.dylib ) [0x7fff82e75bd1] _dispatch_worker_thread (libdispatch.dylib ) [0x10002fa29] _dispatch_root_queue_drain (libdispatch.dylib ) [0x ] [AppDelegate applicationdidfinishlaunching:]_block_invoke (AppDelegate.m:25 in MyApplication ) [0x e5] 1-4 <thread QoS background> 2 45-[AppDelegate applicationdidfinishlaunching:]_block_invoke (AppDelegate.m:28 in MyApplication ) [0x e5] 1-4

162 Sampling QoS! % sudo spindump -timeline MyApplication Thread 0x6bb7a DispatchQueue samples (1-1000) priority cpu time 1.488s <thread QoS utility, priority 20> 1000 start_wqthread + 13 (libsystem_pthread.dylib ) [0x7fff82e73a01] _pthread_wqthread (libsystem_pthread.dylib ) [0x7fff82e75bd1] _dispatch_worker_thread (libdispatch.dylib ) [0x10002fa29] _dispatch_root_queue_drain (libdispatch.dylib ) [0x ] [AppDelegate applicationdidfinishlaunching:]_block_invoke (AppDelegate.m:25 in MyApplication ) [0x e5] 1-4 <thread QoS background> 2 45-[AppDelegate applicationdidfinishlaunching:]_block_invoke (AppDelegate.m:28 in MyApplication ) [0x e5] 1-4

163 Quality of Service Specify the responsiveness and energy requirements of work Available in both Foundation and C APIs Classify long-running or resource-intensive operations in your existing code Aim for >90% of time at Utility or below when the user is inactive

164 Related Session Power, Performance, and Diagnostics: What s New in GCD and XPC Russian Hill Thursday 2:00PM

165 Do It Less

166 Use Less CPU Graphics Storage

167

168

169

170 Reduce CPU Use 1% CPU 10% CPU 100% CPU

171 Reduce CPU Use 1% CPU 10% higher power draw 10% CPU 100% CPU

172 Reduce CPU Use 1% CPU 10% higher power draw 10% CPU 2x power draw 100% CPU

173 Reduce CPU Use 1% CPU 10% higher power draw 10% CPU 2x power draw 100% CPU 10x power draw

174

175

176

177

178 Performance Unit Tests

179 Performance Unit Tests Additions to XCTestCase API in Xcode 6

180 Performance Unit Tests Additions to XCTestCase API in Xcode 6 Helps you find performance regressions

181 Performance Unit Tests Additions to XCTestCase API in Xcode 6 Helps you find performance regressions! - (void)testsomething { [self measureblock:^{ //...snip.. }]; }

182 Related Sessions Testing in Xcode 6 Marina Thursday 9:00AM Continuous Integration with Xcode 6 Marina Thursday 2:00PM

183 Reduce CPU Use

184 Reduce CPU Use CPU use has a huge dynamic range in power

185 Reduce CPU Use CPU use has a huge dynamic range in power Monitor CPU use with Xcode debug gauge

186 Reduce CPU Use CPU use has a huge dynamic range in power Monitor CPU use with Xcode debug gauge Profile with Instruments

187 Reduce CPU Use CPU use has a huge dynamic range in power Monitor CPU use with Xcode debug gauge Profile with Instruments Prevent regressions with performance unit tests

188 Minimize Timers

189 Minimize Timers -[NSObject performselector:withobject:afterdelay:] pthread_cond_timedwait() CFRunLoopTimer NSTimer Grand Central Dispatch timers sleep() select() CVDisplayLink dispatch_semaphore_wait()

190 Timer Fixed Cost Power Time

191 Timer Fixed Cost Timer Firings Power Time

192 Timer Fixed Cost Timer Firings Power Time

193 Timer Fixed Cost Timer Firings Power Time

194

195

196

197 Diagnosing Timer Issues timerfires $ sudo timerfires -p MyApplication -s -g

198 Diagnosing Timer Issues timerfires $! sudo timerfires -p MyApplication -s -g COUNT PID PROCESS TYPE TIMER ROUTINE MyApp dispatch MyApp`-[AppModel updatewidgets:] MyApp CF MyApp`-[AppDelegate timerfired:] MyApp sleep libsystem_kernel.dylib` semwait_signal+0xa libsystem_c.dylib`usleep+0x36 MyApp`-[AppModel pollforchange]+0x1a libdispatch.dylib`_dispatch_call_block_and_release+0xc

199 Timer Coalescing Time

200 Timer Coalescing Time

201 Specify Timer Tolerance

202 Specify Timer Tolerance [mytimer settolerance:60.0];! CFRunLoopTimerSetTolerance(myTimer, 60.0);! dispatch_source_set_timer(my_timer, DISPATCH_TIME_NOW, 30 * NSEC_PER_SEC, 60 * NSEC_PER_SEC);

203 Minimize Timers Be mindful of wakeup overhead Monitor for wakeups Debug with timerfires Specify timer tolerance

204 Related Session Energy Best Practices WWDC 2013

205 Efficient Graphics

206 Efficient Graphics

207 Efficient Graphics

208 Efficient Graphics

209 Efficient Graphics

210 Limit Screen Updates Avoid extraneous screen updates Unnecessary drawing kicks graphics hardware out of low-power modes Drawing more content than needed causes extra power draw to update the screen Use needstodrawrect: or getrectsbeingdrawn:count: methods to fine-tune drawing

211 Flash Screen Updates

212 Flash Screen Updates

213 Flash Screen Updates Graphics Tools for Xcode:

214 Flash Screen Updates Core Animation

215 Visual Effects Translucent blurs have an energy cost Avoid placing over updating elements

216 Visual Effects Translucent blurs have an energy cost Avoid placing over updating elements NSVisualEffectView App

217 Visual Effects Translucent blurs have an energy cost Avoid placing over updating elements NSVisualEffectView Animating Content App

218 Visual Effects Translucent blurs have an energy cost Avoid placing over updating elements NSVisualEffectView Animating Content App

219 Efficient Graphics Draw minimally and efficiently Monitor drawing with Quartz Debug or Instruments Avoid blurs on updating content

220 Flash Power Writes to Flash are much more energy hungry than reads Write the minimum content necessary Do writes in aggregate for better power efficiency

221 Flash Power Writes to Flash are much more energy hungry than reads Write the minimum content necessary Do writes in aggregate for better power efficiency Any I/O will pull device out of low-power states Use caching to your advantage

222 Do It Less Profile and monitor CPU Reduce timers Be efficient in the use of graphics Minimize I/O

223 Summary Improving your app s energy consumption improves user experience

224 Summary Improving your app s energy consumption improves user experience Continuously monitor your app s energy and resource consumption

225 Summary Improving your app s energy consumption improves user experience Continuously monitor your app s energy and resource consumption Look for ways to Do it never Respond to changes in active state

226 Summary Improving your app s energy consumption improves user experience Continuously monitor your app s energy and resource consumption Look for ways to Do it never Respond to changes in active state Do it at a better time Let the system schedule work

227 Summary Improving your app s energy consumption improves user experience Continuously monitor your app s energy and resource consumption Look for ways to Do it never Respond to changes in active state Do it at a better time Let the system schedule work Do it more efficiently Specify Quality of Service Classes on your work

228 Summary Improving your app s energy consumption improves user experience Continuously monitor your app s energy and resource consumption Look for ways to Do it never Respond to changes in active state Do it at a better time Let the system schedule work Do it more efficiently Specify Quality of Service Classes on your work Do it less Optimize and improve your resource use

229 Summary Improving your app s energy consumption improves user experience Continuously monitor your app s energy and resource consumption Look for ways to Do it never Respond to changes in active state Do it at a better time Let the system schedule work Do it more efficiently Specify Quality of Service Classes on your work Do it less Optimize and improve your resource use And stick around for Part 2

230 More Information Paul Danbold Core OS Evangelist Energy Best Practices WWDC 2013 Building Resource Efficient Apps WWDC 2013 Apple Developer Forums

231 Related Sessions What s New in Foundation Networking Nob Hill Tuesday 3:15PM Improving Your App with Instruments Marina Tuesday 4:30PM Writing Energy Efficient Code, Part 2 Russian Hill Wednesday 11:30AM Testing in Xcode 6 Marina Thursday 9:00AM Fix Bugs Faster Using Activity Tracing Russian Hill Thursday 11:30AM Continuous Integration with Xcode 6 Marina Thursday 2:00PM Power, Performance, and Diagnostics: What s New in GCD and XPC Russian Hill Thursday 2:00PM

232 Labs Power and Performance Lab Core OS Lab B Wednesday 2:00PM Instruments Lab Tools Lab B Thursday 9:00AM Power and Performance Lab Core OS Lab A Thursday 3:15PM

233

Power, Performance, and Diagnostics

Power, Performance, and Diagnostics Core OS #WWDC14 Power, Performance, and Diagnostics What's new in GCD and XPC Session 716 Daniel Steffen Darwin Runtime Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not

More information

What s New in Energy Debugging

What s New in Energy Debugging #WWDC18 What s New in Energy Debugging Phillip Azar, Apple/Battery Life David Choi, Apple/Battery Life 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written

More information

Writing Energy Efficient Apps

Writing Energy Efficient Apps Session App Frameworks #WWDC17 Writing Energy Efficient Apps 238 Daniel Schucker, Software Power Engineer Prajakta Karandikar, Software Power Engineer 2017 Apple Inc. All rights reserved. Redistribution

More information

New UIKit Support for International User Interfaces

New UIKit Support for International User Interfaces App Frameworks #WWDC15 New UIKit Support for International User Interfaces Session 222 Sara Radi Internationalization Software Engineer Aaltan Ahmad Internationalization Software Engineer Paul Borokhov

More information

Gestures: ingsa GESTURES

Gestures: ingsa GESTURES GESTURES FORWARD AND BACKWARD SWIPE RIGHT TO GO TO THE NEXT SCREEN OR SWIPE LEFT TO GO TO THE PREVIOUS SCREEN IN THE STORY FLOW SELECT TAP WITH 1 FINGER TO NAVIGATE THOROUGH AN INTERACTIVE ITEM (SCENES)

More information

G2E Web Banners: 200 x 100 Signature. 160 x 160 Social Media. 125 x 125 web button

G2E Web Banners: 200 x 100  Signature. 160 x 160 Social Media. 125 x 125 web button G2E Web Banners: 200 x 100 Email Signature 160 x 160 Social Media We will generate a special coded link just for you. After you submit your order, you will receive an email (see sample below) with your

More information

TITLE - Size 16 - Bold

TITLE - Size 16 - Bold EDCE 2010-2011 - Size 12 - Normal Conceptual Design of Structures - Size 12 - Normal Instructor: A. Muttoni, R. Salvi, P. Wahlen - Assitant: T. Clément - Author: X. Name - TITLE - Size 16 - Bold Pier Luigi

More information

cosmos a tech startup

cosmos a tech startup a tech startup Logo Business Card Lorem Ipsum company director Street name City, State, Zipcode (555) 555-5555 lorem@ipsum.com www.loremipsum.com Lorem ipsum dolor sit amet, consectetur adipiscing elit.

More information

MyTrials Next Generation Blue Sky Wireframes

MyTrials Next Generation Blue Sky Wireframes MyTrials Next Generation Blue Sky Wireframes A High-Level, Side-by-Side Examination of UX Functionality for Desktops/Laptops vs. Phones 1 >> Introduction Introduction Overall Objectives MyTrials Next Generation

More information

FOR THOSE WHO DO. Lenovo Annual Report

FOR THOSE WHO DO. Lenovo Annual Report FOR THOSE WHO DO. Lenovo Annual Report 2014 CONTENTS 2 6 About Lenovo 4 Financial Highlights 5 Chairman & CEO Statement Performance About Lenovo Lenovo is one of the world's leading personal technology

More information

A Road To Better User Experience. The lonely journey every front-end developer must walk.

A Road To Better User Experience. The lonely journey every front-end developer must walk. A Road To Better User Experience The lonely journey every front-end developer must walk. Kotaro Fujita kut@tomatoboy.co Web/iOS/Game Development AGENDA What is UI/UX? Idealized Workflow Realities Random

More information

What's New in Foundation Networking

What's New in Foundation Networking Core OS #WWDC14 What's New in Foundation Networking Session 707 Steve Algernon Senior Wrangler 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

Creating An Effective Academic Poster. ~ A Student Petersheim Workshop

Creating An Effective Academic Poster. ~ A Student Petersheim Workshop Creating An Effective Academic Poster ~ A Student Petersheim Workshop 11 Seconds Poster Graphics and Pictures Headlines and Subheadings Poster Copy PRINCIPLES OF DESIGN BALANCE Visual balance comes

More information

Connected TV Applications for TiVo. Project Jigsaw. Design Draft. 26 Feb 2013

Connected TV Applications for TiVo. Project Jigsaw. Design Draft. 26 Feb 2013 Connected TV Applications for TiVo Project Jigsaw Design Draft 26 Feb 2013 UI Design Connected TV application for TiVo Project Jigsaw 2 Overview LAUNCH POINT The goal of Project Jigsaw is to create a library

More information

TITLE. Tips for Producing a Newsletter IN THIS ISSUE

TITLE. Tips for Producing a Newsletter IN THIS ISSUE TITLE UNIT NAME DATE Advantages of a Newsletter The purpose of a newsletter is to provide specialized information to a targeted audience. Newsletters can be a great way to market yourself, and also create

More information

Design for Everyone. Design #WWDC17. Caroline Cranfill, Designer Alexander James O Connell, Designer

Design for Everyone. Design #WWDC17. Caroline Cranfill, Designer Alexander James O Connell, Designer Session Design #WWDC17 Design for Everyone 806 Caroline Cranfill, Designer Alexander James O Connell, Designer 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without

More information

What s New in Xcode App Signing

What s New in Xcode App Signing Developer Tools #WWDC16 What s New in Xcode App Signing Developing and distributing Session 401 Joshua Pennington Tools Engineering Manager Itai Rom Tools Engineer 2016 Apple Inc. All rights reserved.

More information

High Performance Auto Layout

High Performance Auto Layout #WWDC18 High Performance Auto Layout Ken Ferry, ios System Experience Kasia Wawer, ios Keyboards 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

MKA PLC Controller OVERVIEW KEY BENEFITS KEY FEATURES

MKA PLC Controller OVERVIEW KEY BENEFITS KEY FEATURES 1881 OVERVIEW The ezswitch Controller is a compact PLC for the modular. In addition to providing commonly used network and Fieldbus interfaces, the controller supports all digital, analog and speciality

More information

BOOTSTRAP AFFIX PLUGIN

BOOTSTRAP AFFIX PLUGIN BOOTSTRAP AFFIX PLUGIN http://www.tutorialspoint.com/bootstrap/bootstrap_affix_plugin.htm Copyright tutorialspoint.com The affix plugin allows a to become affixed to a location on the page. You can

More information

Colors. F0563A Persimmon. 3A414C Cobalt. 8090A2 Slate Shale. C4CDD6 Alloy Coal. EFF3F5 Silver. EDF3F9 Horizon.

Colors. F0563A Persimmon. 3A414C Cobalt. 8090A2 Slate Shale. C4CDD6 Alloy Coal. EFF3F5 Silver. EDF3F9 Horizon. Colors Brand Primary F0563A Persimmon 3A414C Cobalt Secondary Brand 333943 Coal 697582 Shale 8090A2 Slate C4CDD6 Alloy E1E6EB Platinum EFF3F5 Silver EDF3F9 Horizon FFFFFF White Interaction 0088A9 Ocean

More information

Brand identity guidelines

Brand identity guidelines Brand identity guidelines CONTENTS 1 LOGO 5 COLOUR 6 TYPEFACE 8 SIGNAGE These guidelines are to help you understand the PACIFIC ALUMINIUM visual brand. The following pages demonstrate how the PACIFIC ALUMINIUM

More information

TUSCALOOSA CITY SCHOOLS Graphic Standards and Logo Use Guide

TUSCALOOSA CITY SCHOOLS Graphic Standards and Logo Use Guide TUSCALOOSA CITY SCHOOLS Graphic Standards and Logo Use Guide THE LOGO: Primary Version Concept: Fresh Modern Symbolic Rationale: The new logo gives the education system a fresh and modern appeal. Tuscaloosa

More information

Example project Functional Design. Author: Marion de Groot Version

Example project Functional Design. Author: Marion de Groot Version Example project Functional esign uthor: Marion de Groot Version 1.0-18-4-2013 Table of contents 3 Introduction Requirements gathering 4 Use cases 5 Use case flow diagram 6 Users and Rights 7 Requirements

More information

The POGIL Project Publication Guidelines

The POGIL Project Publication Guidelines 1 The POGIL Project Publication Guidelines Publication Submission Checklist 2 IN ORDER TO be published, you are required to review each item below before submitting your documents to The POGIL Project.

More information

Accessibility on OS X

Accessibility on OS X Frameworks #WWDC14 Accessibility on OS X New Accessibility API Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer 2014 Apple Inc. All rights reserved. Redistribution or public

More information

Ghislain Fourny. Big Data 2. Lessons learnt from the past

Ghislain Fourny. Big Data 2. Lessons learnt from the past Ghislain Fourny Big Data 2. Lessons learnt from the past Mr. Databases: Edgar Codd Wikipedia Data Independence (Edgar Codd) Logical data model Lorem Ipsum Dolor sit amet Physical storage Consectetur Adipiscing

More information

Fix Bugs Faster Using Activity Tracing

Fix Bugs Faster Using Activity Tracing Core OS #WWDC14 Fix Bugs Faster Using Activity Tracing Session 714 Eric Clements Core OS Engineering 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written

More information

Timon Hazell, LEED AP Senior BIM Engineer. Galen S. Hoeflinger, AIA BIM Technologist Manager

Timon Hazell, LEED AP Senior BIM Engineer. Galen S. Hoeflinger, AIA BIM Technologist Manager Timon Hazell, LEED AP Senior BIM Engineer Galen S. Hoeflinger, AIA BIM Technologist Manager Find Joy in Your Work The Human Aspect The Human Aspect Importance of Architecture Know People The Human Aspect

More information

Intermediate District 288. Brand Manual. Visual Identity Guide

Intermediate District 288. Brand Manual. Visual Identity Guide Intermediate District 288 Brand Manual Visual Identity Guide SWMetro District Office 792 Canterbury Road, Suite 211 Shakopee, MN 55379 (952) 567.8100 Overview The SouthWest Metro Intermediate District

More information

City of Literature Branding

City of Literature Branding Branding The logo is based upon letterpress print techniques to demonstrate Manchesters history with literature in physical form. It is designed to be responsive so has different versions dependant on

More information

Index. ChannelEngine. Our users. Product. Writing. Tone-of-voice. Colors. Color Combinations. Typography - Fonts. Typography - Rules. Logo.

Index. ChannelEngine. Our users. Product. Writing. Tone-of-voice. Colors. Color Combinations. Typography - Fonts. Typography - Rules. Logo. Brandbook Index ChannelEngine Our users Product Writing Tone-of-voice Colors Color Combinations Typography - Fonts Typography - Rules Logo Elements 2 2 3 4 4 5 6 7 8 9 10 1 ChannelEngine ChannelEngine

More information

FACEBOOK TEMPLATE. Cover Photo. download template. profile pic ABOUT VIDEO APP IMAGE PHOTO THUMBNAIL

FACEBOOK TEMPLATE. Cover Photo. download template. profile pic ABOUT VIDEO APP IMAGE PHOTO THUMBNAIL FACEBOOK TEMPLATE Page 1 16 176 Cover Photo 851x315 563 MOBILE SAFE AREA profile pic 180x180 displays as 160x160 667 64 CTA Like Message ABOUT ABOUT VIDEO download template Please see following pages (2-9)

More information

Adapting to the New UI of OS X Yosemite

Adapting to the New UI of OS X Yosemite Frameworks #WWDC14 Adapting to the New UI of OS X Yosemite Session 209 Mike Stern User Experience Evangelist! Rachel Goldeen Cocoa Software Engineer! Patrick Heynen Cocoa Engineering Manager 2014 Apple

More information

Building Watch Apps #WWDC15. Featured. Session 108. Neil Desai watchos Engineer

Building Watch Apps #WWDC15. Featured. Session 108. Neil Desai watchos Engineer Featured #WWDC15 Building Watch Apps Session 108 Neil Desai watchos Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Agenda

More information

RML Example 48: Paragraph flow controls

RML Example 48: Paragraph flow controls RML (Report Markup Language) is ReportLab's own language for specifying the appearance of a printed page, which is converted into PDF by the utility rml2pdf. These RML samples showcase techniques and features

More information

Invoice Visual Design Specifications MEC

Invoice Visual Design Specifications MEC Invoice Visual Design Specifications MEC Author Dean Ashworth Version 01.02 Last Updated February 1, 2012 Page 1 Invoice Visual Design Specifications MEC Contents Note on sizes & scale... 1. Request Money....

More information

What s New in Notifications

What s New in Notifications System Frameworks #WWDC15 What s New in Notifications Session 720 Michele Campeotto ios Notifications Gokul Thirumalai Apple Push Notification Service 2015 Apple Inc. All rights reserved. Redistribution

More information

CloudKit Tips And Tricks

CloudKit Tips And Tricks System Frameworks #WWDC15 CloudKit Tips And Tricks Session 715 Nihar Sharma CloudKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

The L A TEX Template for MCM Version v6.2

The L A TEX Template for MCM Version v6.2 For office use only T1 T2 T3 T4 Team Control Number 0000 Problem Chosen A 2016 MCM/ICM Summary Sheet For office use only F1 F2 F3 F4 The L A TEX Template for MCM Version v6.2 Summary Lorem ipsum dolor

More information

Brand Guidelines MAY 2016

Brand Guidelines MAY 2016 Brand Guidelines MAY 2016 CONTENT LOGO 1-11 COLORS 12 TYPOGRAPHY 13-14 STYLE 15-19 STATIONARY 20-30 including: BUSINESS CARD 21-22 LETTERHEAD 23 EMAIL SIGNATURE 24 CLIENT PROPOSAL & REPORT 25-26 NEWSLETTER

More information

Introducing the Modern WebKit API

Introducing the Modern WebKit API Frameworks #WWDC14 Introducing the Modern WebKit API Session 206 Anders Carlsson Safari and WebKit Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written

More information

CUSTOM WEB HOME SCREEN TEACH ON MARS - MOBILE LEARNING APPS Teach on Mars

CUSTOM WEB HOME SCREEN TEACH ON MARS - MOBILE LEARNING APPS Teach on Mars CUSTOM WEB HOME SCREEN TEACH ON MARS - MOBILE LEARNING APPS 2018 Teach on Mars 1 sur 17 Integration Guide 3 Introduction 4 Why a custom home screen? 4 Why a "web" home screen? 4 Design guidelines 5 Think

More information

Seamless Linking to Your App

Seamless Linking to Your App App Frameworks #WWDC15 Seamless Linking to Your App Session 509 Conrad Shultz Safari and WebKit Software Engineer Jonathan Grynspan Core Services Software Engineer 2015 Apple Inc. All rights reserved.

More information

Presentation title placeholder, can be two lines Presentation subtitle placeholder. Date placeholder

Presentation title placeholder, can be two lines Presentation subtitle placeholder. Date placeholder Presentation title placeholder, can be two lines Presentation subtitle placeholder Date placeholder Presentation title placeholder Presentation title one line only Presentation subtitle placeholder Date

More information

Abstract. Author summary. Introduction

Abstract. Author summary. Introduction 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 33 34 35 36 37 38 Abstract sodales vulputate auctor. Nam lacus felis, fermentum sit amet nulla ac, tristique ultrices tellus. Integer

More information

WPBAKERY PAGE BUILDER

WPBAKERY PAGE BUILDER WPBAKERY PAGE BUILDER WHY? 01 02 03 Build complex layouts using a grid system Easy to use drag and drop Easy to develop for 04 Highly customizable 05 High adoption and user base HIGH ADOPTION FORMERLY

More information

Working with Metal Overview

Working with Metal Overview Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

One4All. Wireframes, v1. The Barbarian Group Tuesday, September 28, 2010

One4All. Wireframes, v1. The Barbarian Group Tuesday, September 28, 2010 Wirerames, v The Barbarian Group Tuesday, September 28, 200 Homepage 2 Hi there. What does your internet look like? dolor sit amet, consectetur adipiscing elit. Sed mattis augue in ipsum porttitor vel

More information

Advanced Systems Security: Future

Advanced Systems Security: Future Advanced Systems Security: Future Trent Jaeger Systems and Internet Infrastructure Security (SIIS) Lab Penn State University 1 Privilege Separation Has been promoted for some time Software-Fault Isolation

More information

Whitepaper. Call to Action

Whitepaper. Call to Action Whitepaper Call to Action The Call to Action When companies send emails, the first goal would be that subscribers open the email. The next step would be that all of them actually read the email. And the

More information

Paper Template for INTERSPEECH 2018

Paper Template for INTERSPEECH 2018 Paper Template for INTERSPEECH 2018 Author Name 1, Co-author Name 2 1 Author Affiliation 2 Co-author Affiliation author@university.edu, coauthor@company.com Abstract For your paper to be published in the

More information

NATURAL BUILDING TECHNOLOGIES Document: Feedback Sheet Revision: A Date: 13/07/16 Queries:

NATURAL BUILDING TECHNOLOGIES Document: Feedback Sheet Revision: A Date: 13/07/16 Queries: Document: Feedback Sheet Revision: A Date: 13/07/16 What s a wireframe? It s important that everything you need to present on the site is accounted for, and has been considered in the layout. The best

More information

GRAPHIC MANUAL 11/2017

GRAPHIC MANUAL 11/2017 GRAPHIC MANUAL 11/2017 Content 01 Logotyp 01.01 01.02 01.03 01.04 01.05 01.06 01.07 01.08 Definitions Network layout Protective zone Minimum size Colour variants Monochromatic variants in the BW scale Composition

More information

TITLE SUBTITLE Issue # Title Subtitle. Issue Date. How to Use This Template. by [Article Author] Article Title. Page # Article Title.

TITLE SUBTITLE Issue # Title Subtitle. Issue Date. How to Use This Template. by [Article Author] Article Title. Page # Article Title. TITLE SUBTITLE Issue # Title Subtitle Issue Date TYPE TAGLINE HERE IN THIS ISSUE How to Use This Template Article Title Page # Article Title Page # TITLE SUBTITLE Issue # 2 Using Styles by Name Style HEADING

More information

TITLE EXAMPLE. Sub - title

TITLE EXAMPLE. Sub - title TITLE EXAMPLE Sub - title SUMMARY 1 TOPIC Relevant text 2 TOPIC Relevant text 3 TOPIC Relevant text 4 TOPIC Relevant text TIMELINE Euismod tincidunt ut laoreet dolore magna aliquam erat volutpat Title

More information

The Next Big Thing Prepared for Meeting C

The Next Big Thing Prepared for Meeting C The Next Big Thing Prepared for Meeting C++ 2018 Andrei Alexandrescu, Ph.D. andrei@erdani.com November 15, 2018 1 / 48 Squeaky Wheel Gets the Grease 2 / 48 ( Those were the most cringey minutes of the

More information

BRAND GUIDELINES All rights reserved.

BRAND GUIDELINES All rights reserved. BRAND GUIDELINES 2017. All rights reserved. LOGO :: INTRODUCTION The Live Purple Logo Mark the most recognizable visual brand element differentiates itself from similar cause based fundraisers. The mark

More information

Advanced Debugging and the Address Sanitizer

Advanced Debugging and the Address Sanitizer Developer Tools #WWDC15 Advanced Debugging and the Address Sanitizer Finding your undocumented features Session 413 Mike Swingler Xcode UI Infrastructure Anna Zaks LLVM Program Analysis 2015 Apple Inc.

More information

II. COLOR PALETTE Primary p. 18 Secondary p. 18. III. TYPOGRAPHY Primary typography p. 19 Secondary typography p. 20 Default typography p.

II. COLOR PALETTE Primary p. 18 Secondary p. 18. III. TYPOGRAPHY Primary typography p. 19 Secondary typography p. 20 Default typography p. STYLE GUIDE 2016 TABLE OF CONTENTS I. LOGO Introduction p. 3 Primary logo: Full-color application p. 4 One-color applications p. 5 Reverse applications: p. 6 Two-color p. 6 One-color p. 7 With tagline

More information

Sphinx prototype Documentation

Sphinx prototype Documentation Sphinx prototype Documentation Release 0.1 Arthur Mar 03, 2017 General documentation 1 Support docs 3 2 Developer docs 5 3 API docs 7 3.1 About this setup.............................................

More information

AR0051 content/style. Michelle Bettman Henry Kiksen. Challenge the future

AR0051 content/style. Michelle Bettman Henry Kiksen. Challenge the future AR0051 content/style Michelle Bettman Henry Kiksen Challenge the future 1 AR0051: Digital Presentation Portfolio Today's Programme: A little on HTML/CSS Group-wise mind-map on Content and Style Discussion

More information

RHYMES WITH HAPPIER!

RHYMES WITH HAPPIER! RHYMES WITH HAPPIER! Title Subtitle Date Title Subtitle Date Title Subtitle Date Title Subtitle Date WHO AM I? First Last Body copy Quick Facts about Zapier HQ: San Francisco, CA 100% Remote 145 Employees

More information

EyeDecrypt Private Interactions in Plain Sight. Andrea Forte, Juan Garay, Trevor Jim and Yevgeniy Vahlis AT&T Security Research Center

EyeDecrypt Private Interactions in Plain Sight. Andrea Forte, Juan Garay, Trevor Jim and Yevgeniy Vahlis AT&T Security Research Center Private Interactions in Plain Sight Andrea Forte, Juan Garay, Trevor Jim and Yevgeniy Vahlis AT&T Security Research Center Shoulder Surfing 2 Shoulder Surfing 3 Shoulder Surfing 4 Shoulder Surfing 5 This

More information

Project Title. A Project Report Submitted in partial fulfillment of the degree of. Master of Computer Applications

Project Title. A Project Report Submitted in partial fulfillment of the degree of. Master of Computer Applications Project Title A Project Report Submitted in partial fulfillment of the degree of Master of Computer Applications By Student Name1(xxMCMCxx) Student Name2(yyMCMCyy) School of Computer and Information Sciences

More information

q u e s t i o n s? contact or

q u e s t i o n s? contact or Chocolate Grail offers gourmet and artisanal chocolatiers different advertising options listed below. Two options are free: the basic listing and reviews. listings home page features quick pick fix reviews

More information

Making the New Notes. Christoph Noack OpenOffice.org User Experience Max Odendahl OpenOffice.org Development Christian Jansen Sun Microsystems

Making the New Notes. Christoph Noack OpenOffice.org User Experience Max Odendahl OpenOffice.org Development Christian Jansen Sun Microsystems Making the New Notes Community Cooperation Concepts Christoph Noack OpenOffice.org User Experience Max Odendahl OpenOffice.org Development Christian Jansen Sun Microsystems Making the New Notes Community

More information

COLORS COLOR USAGE LOGOS LOCK UPS PHOTOS ELEMENTS ASSETS POWERPOINT ENVIRONMENTAL COLLATERAL PROMO ITEMS TABLE OF CONTENTS

COLORS COLOR USAGE LOGOS LOCK UPS PHOTOS ELEMENTS ASSETS POWERPOINT ENVIRONMENTAL COLLATERAL PROMO ITEMS TABLE OF CONTENTS COLORS COLOR USAGE LOGOS LOCK UPS PHOTOS ELEMENTS ASSETS POWERPOINT ENVIRONMENTAL COLLATERAL PROMO ITEMS TABLE OF CONTENTS PANTONE 349 HEX 026937 RGB 2, 105, 55 CMYK 90, 33, 100, 26 PANTONE 7489 HEX 73A950

More information

NATIONAL PEDIATRIC CANCER FOUNDATION LOGO & BRANDING USAGE GUIDE

NATIONAL PEDIATRIC CANCER FOUNDATION LOGO & BRANDING USAGE GUIDE NATIONAL PEDIATRIC CANCER FOUNDATION LOGO & BRANDING USAGE GUIDE Reference Number: PCF-14926 Prepared for: PCF Prepared by: PP+K TABLE OF CONTENTS 4 ICON LOGO USAGE 9 WRITTEN LOGO USAGE 15 LOGO USAGE DON

More information

Portfolio. Site design, wireframes and other diagrams. Abigail Plumb-Larrick. Plumb Information Strategy

Portfolio. Site design, wireframes and other diagrams. Abigail Plumb-Larrick. Plumb Information Strategy Portfolio Site design, wireframes and other diagrams Plumb Information Strategy abigail@plumbinformation.com (917) 698-5511 NOTES and CALLOUTS Contents 1. Portfolio of design/ux work A. Shipping flow C.

More information

Unit 20 - Client Side Customisation of Web Pages WEEK 5 LESSON 6 DESIGNING A WEB-SITE

Unit 20 - Client Side Customisation of Web Pages WEEK 5 LESSON 6 DESIGNING A WEB-SITE Unit 20 - Client Side Customisation of Web Pages WEEK 5 LESSON 6 DESIGNING A WEB-SITE Today s tasks This lesson is on the wiki: Design Exercise (for A3); corporate theme in primary design 3rd November

More information

Accessibility on ios. Developing for everyone. Frameworks #WWDC14. Session 210 Clare Kasemset ios Accessibility

Accessibility on ios. Developing for everyone. Frameworks #WWDC14. Session 210 Clare Kasemset ios Accessibility Frameworks #WWDC14 Accessibility on ios Developing for everyone Session 210 Clare Kasemset ios Accessibility 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without

More information

Introducing Password AutoFill for Apps

Introducing Password AutoFill for Apps Session App Frameworks #WWDC17 Introducing Password AutoFill for Apps Reducing friction for your users 206 Ricky Mondello, ios Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display

More information

OCTOBER 16 NEWSLETTER. Lake Mayfield Campground OR-LOW GOOD TIMES

OCTOBER 16 NEWSLETTER. Lake Mayfield Campground OR-LOW GOOD TIMES a OR-LOW GOOD TIMES OCTOBER 16 NEWSLETTER Lake Mayfield Campground by Nan O. The October camp out was a joint adventure with hosts Nor West LoWs. We arrived on Monday, October 10 th and stayed three nights.

More information

ALWAYS MOVING FORWARD MIDWAY S GRAPHIC IDENTITY STANDARDS MANUAL

ALWAYS MOVING FORWARD MIDWAY S GRAPHIC IDENTITY STANDARDS MANUAL ALWAYS MOVING FORWARD MIDWAY S GRAPHIC IDENTITY STANDARDS MANUAL OVERVIEW The Midway Branding Standards is a reference tool that provides standards and guidelines for all usage of graphics in order to

More information

The rjlpshap class. Robert J Lee July 9, 2009

The rjlpshap class. Robert J Lee July 9, 2009 The rjlpshap class Robert J Lee latex@rjlee.homelinux.org July 9, 2009 1 Introduction This package provides low-level helper macros and environments. It is intended for authors of L A TEX packages, who

More information

UNIVERSITY OF CALGARY. An Important Contribution to the Literature. Jane Mary Doe A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES

UNIVERSITY OF CALGARY. An Important Contribution to the Literature. Jane Mary Doe A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES UNIVERSITY OF CALGARY An Important Contribution to the Literature by Jane Mary Doe A THESIS SUBMITTED TO THE FACULTY OF GRADUATE STUDIES IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR

More information

Brand identity design. Professional logo design + Branding guidelines + Stationery Designed by JAVIER

Brand identity design. Professional logo design + Branding guidelines + Stationery Designed by JAVIER Brand identity design Professional logo design + Branding guidelines + Stationery Designed by JAVIER Logo conceptualization Concept Shape Typography Color After reading the information provided After some

More information

MBCA Section Newsletter Required Content Guidelines

MBCA Section Newsletter Required Content Guidelines MBCA Section Newsletter The attached newsletter template, developed by the National Business Office of the Mercedes-Benz Club of America along with Mr. Stacy Rollins, Newsletter Committee Chairman, was

More information

Brand Guide. Last Revised February 9, :38 PM

Brand Guide. Last Revised February 9, :38 PM Brand Guide Last Revised February 9, 2016 2:38 PM The Trinity brand is current, energetic and strong. Through textures, images, typography and color it has the versatility to be playful and trendy as well

More information

src0-dan/mobile.html <!DOCTYPE html> Dan Armendariz Computer Science 76 Building Mobile Applications Harvard Extension School

src0-dan/mobile.html <!DOCTYPE html> Dan Armendariz Computer Science 76 Building Mobile Applications Harvard Extension School src0-dan/mobile.html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.

More information

WRAS WIAPS BRAND GUIDELINES 2015

WRAS WIAPS BRAND GUIDELINES 2015 01 WRAS WIAPS BRAND GUIDELINES 2015 02 WRAS PRODUCT APPROVAL CERTIFICATION MARK BRAND GUIDANCE AND TERMS AND CONDITIONS OF USE WRAS LTD. CERTIFICATION MARKS, TRADEMARK AND LOGOS (APPLIES TO ALL END USERS)

More information

Advanced Memory Analysis with Instruments. Daniel Delwood Performance Tools Engineer

Advanced Memory Analysis with Instruments. Daniel Delwood Performance Tools Engineer Advanced Memory Analysis with Instruments Daniel Delwood Performance Tools Engineer 2 Memory Analysis What s the issue? Memory is critical to performance Limited resource Especially on iphone OS 3 4 Memory

More information

Building Apps with Dynamic Type

Building Apps with Dynamic Type Session App Frameworks #WWDC17 Building Apps with Dynamic Type 245 Clare Kasemset, Software Engineering Manager Nandini Sundar, Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or

More information

Introducing On Demand Resources

Introducing On Demand Resources App Frameworks #WWDC15 Introducing On Demand Resources An element of App Thinning Session 214 Steve Lewallen Frameworks Engineering Tony Parker Cocoa Frameworks 2015 Apple Inc. All rights reserved. Redistribution

More information

LARK BISTRO LOGO & WEBSITE DESIGN PROPOSAL

LARK BISTRO LOGO & WEBSITE DESIGN PROPOSAL LARK BISTRO LOGO & WEBSITE DESIGN PROPOSAL Prepared for: Susan Lark Prepared by: Wes McDowell September 30, 2011 Section 1 Client Background Lark is a startup bistro & wine bar in downtown Seattle. Their

More information

Comms app (basic comms)

Comms app (basic comms) HTML 5 concepts V4.0 Authors: Date: Ayman Maat 16.05. Purpose of document Table of Contents Document detailing UI specifications for the basic Comms App for the HTML5 project All contacts 4 Version control

More information

Reputation X Content Development and Promotion Checklist

Reputation X Content Development and Promotion Checklist Reputation X Content Development and Promotion Checklist reputation x look better online 2.7 million blog posts are published every day. How do we cut through the noise? Why does some content achieve higher

More information

Quick Interaction Techniques for watchos

Quick Interaction Techniques for watchos App Frameworks #WWDC16 Quick Interaction Techniques for watchos Session 211 Tom Witkin watchos Engineer Miguel Sanchez watchos Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display

More information

Formatting Theses and Papers using Microsoft Word

Formatting Theses and Papers using Microsoft Word Formatting Theses and Papers using Microsoft Word (CDTL) National University of Singapore email: edtech@groups.nus.edu.sg Table of Contents About the Workshop... i Workshop Objectives... i Session Prerequisites...

More information

Style guide. March 2017 CC BY 4.0 The Tor Project

Style guide. March 2017 CC BY 4.0 The Tor Project Style guide March 2017 CC BY 4.0 The Tor Project Introduction The visual identity of software is an integral part of its user experience. Correctly using a consistent and attractive style is important

More information

Logo & Brand Guidelines. March 16, 2017

Logo & Brand Guidelines. March 16, 2017 Logo & Brand Guidelines March 16, 2017 Anime Expo Brand Guidelines Logo 2 Logo Anime Expo Brand Guidelines Logo 3 Primary Logo Box Logo Anime Expo Brand Guidelines Logo 4 Primary Logo Box Logo Variations

More information

I D E N T I TY STA N DA R D S M A N UA L Rev 10.13

I D E N T I TY STA N DA R D S M A N UA L Rev 10.13 I D E N T I TY STA N DA R D S M A N UA L 3150-81-13 Rev 10.13 Table of Contents 1.1 How To Use This Manual 1.2 Web Resources Available to Faculty and Staff Basic Standards for the Signature 2.1 The Robert

More information

Compassion. Action. Change.

Compassion. Action. Change. DRAFT GRAPHIC STANDARDS GUIDE Contents 3 Overview 4 Tagline 6 Imagery 7 Identity Overview 8 CalMHSA Logo 10 Logo Usage 12 CalMHSA Logo Configurations 14 Color Palette 15 Typography 19 Design Samples GRAPHIC

More information

Version 1.4 March 15, Notes Bayer- Kogenate 2010 WFH Microsoft Surface Project (HKOG-39563) Information Architecture Wireframes

Version 1.4 March 15, Notes Bayer- Kogenate 2010 WFH Microsoft Surface Project (HKOG-39563) Information Architecture Wireframes Notes Author Version Comments Mick Rosolek.0 Initial Draft Mick Rosolek. First Round Edits Mick Rosolek.2 Additional Edits Mick Rosolek.3 Amendment Mick Rosolek.4 Amendment Site Map - Page of 4 0.0 Pre-Engagement

More information

SUMMARY OF DESIGN CHOICES

SUMMARY OF DESIGN CHOICES SUMMARY OF DESIGN CHOICES Company Name The name is a Hawaiian word that means to go, move. As a new start up application development company, the name fit as Tech designs applications for people on the

More information

SMS specifications for sprint 1

SMS specifications for sprint 1 SMS specifications for sprint 1 HTML 5 project V8.0 Author: Ayman Maat Date: 12.10.22 Purpose of document Document detailing UI specifications for the SMS section of the HTML5 project, sprint 1 Version

More information

section 01 LOGO USAGE primary logo etched logo solid logo reversed

section 01 LOGO USAGE primary logo etched logo solid logo reversed preface HOW TO USE THESE GUIDELINES Abita s visual identity represents our brand and the way customers view our product and our company. These guidelines were created to ensure that the Abita image is

More information

Personalize Your Marketing With. Dynamic Content. 7 Easy Ways to Multiply Your Conversions. Dynamic Content

Personalize Your Marketing With. Dynamic Content. 7 Easy Ways to Multiply Your Conversions. Dynamic Content S H A R P S P R I N G G O -T O G U I D E S E R I E S Dynamic Content Personalize Your Marketing With Dynamic Content 7 Easy Ways to Multiply Your Conversions Table of Contents A Changing Digital Landscape...

More information

CSE 154 LECTURE 5: FLOATING AND POSITIONING

CSE 154 LECTURE 5: FLOATING AND POSITIONING CSE 154 LECTURE 5: FLOATING AND POSITIONING The CSS float property property float description side to hover on; can be left, right, or none (default) a floating element is removed from normal document

More information