Writing Energy Efficient Code
|
|
- Cassandra Fowler
- 6 years ago
- Views:
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
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 informationWhat 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 informationWriting 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 informationNew 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 informationGestures: 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 informationG2E 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 informationTITLE - 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 informationcosmos 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 informationMyTrials 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 informationFOR 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 informationA 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 informationWhat'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 informationCreating 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 informationConnected 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 informationTITLE. 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 informationDesign 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 informationWhat 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 informationHigh 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 informationMKA 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 informationBOOTSTRAP 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 informationColors. 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 informationBrand 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 informationTUSCALOOSA 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 informationExample 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 informationThe 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 informationAccessibility 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 informationGhislain 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 informationFix 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 informationTimon 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 informationIntermediate 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 informationCity 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 informationIndex. 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 informationFACEBOOK 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 informationAdapting 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 informationBuilding 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 informationRML 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 informationInvoice 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 informationWhat 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 informationCloudKit 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 informationThe 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 informationBrand 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 informationIntroducing 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 informationCUSTOM 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 informationSeamless 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 informationPresentation 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 informationAbstract. 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 informationWPBAKERY 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 informationWorking 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 informationOne4All. 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 informationAdvanced 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 informationWhitepaper. 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 informationPaper 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 informationNATURAL 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 informationGRAPHIC 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 informationTITLE 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 informationTITLE 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 informationThe 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 informationBRAND 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 informationAdvanced 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 informationII. 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 informationSphinx 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 informationAR0051 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 informationRHYMES 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 informationEyeDecrypt 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 informationProject 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 informationq 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 informationMaking 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 informationCOLORS 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 informationNATIONAL 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 informationPortfolio. 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 informationUnit 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 informationAccessibility 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 informationIntroducing 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 informationOCTOBER 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 informationALWAYS 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 informationThe 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 informationUNIVERSITY 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 informationBrand 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 informationMBCA 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 informationBrand 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 informationsrc0-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 informationWRAS 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 informationAdvanced 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 informationBuilding 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 informationIntroducing 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 informationLARK 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 informationComms 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 informationReputation 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 informationQuick 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 informationFormatting 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 informationStyle 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 informationLogo & 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 informationI 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 informationCompassion. 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 informationVersion 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 informationSUMMARY 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 informationSMS 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 informationsection 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 informationPersonalize 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 informationCSE 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