SlideShare ist ein Scribd-Unternehmen logo
1 von 14
© 2012 Citrrus LLC. All Rights Reserved.
The iPhone will prove to be more historically
              significant than
          the Personal Computer




                © 2012 Citrrus LLC. All Rights Reserved.
Above a Bar




© 2012 Citrrus LLC. All Rights Reserved.
Agile Optimization


Start slow...




                  © 2012 Citrrus LLC. All Rights Reserved.
DebugLog... your best friend
#ifdef DEBUG

#define DebugLog(...) NSLog(@"%s (%d) %@",
__PRETTY_FUNCTION__, __LINE__, [NSString
stringWithFormat:__VA_ARGS__])
#else

#define DebugLog(...)
#endif


2012-05-07 18:02:20.775 UVA Magazine[4509:17c03]
-[PDFPageViewController viewWillAppear:] (78) View Will Appear for PDF Page




                               © 2012 Citrrus LLC. All Rights Reserved.
Perception


“Beauty is everywhere a
  welcome guest.”
              Johann Wolfgang von Goethe




                © 2012 Citrrus LLC. All Rights Reserved.
Images... more than meets the eye


+[UIImage imageNamed:]
  * Reads file
  * Uncompresses
  * Caches




+[UIImage imageWithContentsOfFile:]
  * Checks access to file
  * File is read and uncompressed
    when image drawn




                          © 2012 Citrrus LLC. All Rights Reserved.
Images... more than meets the eye




          © 2012 Citrrus LLC. All Rights Reserved.
Memory Management


Use Less

Release Early and Often




               © 2012 Citrrus LLC. All Rights Reserved.
Networking


Combine Requests

Compact your data




                    © 2012 Citrrus LLC. All Rights Reserved.
Fast Scrolling


Do your own drawing

Reuse/Recycle

Don’t get in the way of the
 main thread




                © 2012 Citrrus LLC. All Rights Reserved.
Burn the resource you have


Memory vs CPU




            © 2012 Citrrus LLC. All Rights Reserved.
CoreData + SQLite




CoreData + SQLite = partial file access

-[NSData initWithContentsOfFile] = full file access




                  © 2012 Citrrus LLC. All Rights Reserved.
Enumeration
objectAtIndex
for(int i=0;i<count;i++)
{
  id item;
  item = [myObjects objectAtIndex:i];
  NSLog(@"Found an Item: %@",item);
}

  NSFastEnumeration
  for(id item in myObjects)
  {
      NSLog@"Found an Item: %@",item);
  }




                            © 2012 Citrrus LLC. All Rights Reserved.

Weitere ähnliche Inhalte

Andere mochten auch

Gamification at SharePoint Saturday Belgium
Gamification at SharePoint Saturday BelgiumGamification at SharePoint Saturday Belgium
Gamification at SharePoint Saturday BelgiumJussi Mori
 
Ip cchapter2 thornock
Ip cchapter2 thornockIp cchapter2 thornock
Ip cchapter2 thornockRThornock
 
Program logic models: design and use
Program logic models: design and useProgram logic models: design and use
Program logic models: design and useJana Garay
 
Raising productivity with SharePoint and Gamification
Raising productivity with SharePoint and GamificationRaising productivity with SharePoint and Gamification
Raising productivity with SharePoint and GamificationJussi Mori
 
Leadership from the inside out 3
Leadership from the inside out 3Leadership from the inside out 3
Leadership from the inside out 3sportpsychdoc
 
Peaches Industries Gamification story
Peaches Industries Gamification storyPeaches Industries Gamification story
Peaches Industries Gamification storyJussi Mori
 
Фотовыставка
ФотовыставкаФотовыставка
ФотовыставкаGreeeng
 
FFEA 2016 -10 Website Mistakes Even Great Marketers Can Make
FFEA 2016 -10 Website Mistakes Even Great Marketers Can MakeFFEA 2016 -10 Website Mistakes Even Great Marketers Can Make
FFEA 2016 -10 Website Mistakes Even Great Marketers Can MakeSaffire
 
The Presentation Come-Back Kid
The Presentation Come-Back KidThe Presentation Come-Back Kid
The Presentation Come-Back KidEthos3
 
10 Tips for WeChat
10 Tips for WeChat10 Tips for WeChat
10 Tips for WeChatChris Baker
 
20 Ideas for your Website Homepage Content
20 Ideas for your Website Homepage Content20 Ideas for your Website Homepage Content
20 Ideas for your Website Homepage ContentBarry Feldman
 

Andere mochten auch (15)

Gamification at SharePoint Saturday Belgium
Gamification at SharePoint Saturday BelgiumGamification at SharePoint Saturday Belgium
Gamification at SharePoint Saturday Belgium
 
Ip cchapter2 thornock
Ip cchapter2 thornockIp cchapter2 thornock
Ip cchapter2 thornock
 
Program logic models: design and use
Program logic models: design and useProgram logic models: design and use
Program logic models: design and use
 
Raising productivity with SharePoint and Gamification
Raising productivity with SharePoint and GamificationRaising productivity with SharePoint and Gamification
Raising productivity with SharePoint and Gamification
 
Leadership from the inside out 3
Leadership from the inside out 3Leadership from the inside out 3
Leadership from the inside out 3
 
Peaches Industries Gamification story
Peaches Industries Gamification storyPeaches Industries Gamification story
Peaches Industries Gamification story
 
Sales meeting 9.18.12
Sales meeting 9.18.12Sales meeting 9.18.12
Sales meeting 9.18.12
 
Фотовыставка
ФотовыставкаФотовыставка
Фотовыставка
 
Presentation 2
Presentation 2Presentation 2
Presentation 2
 
Tu
TuTu
Tu
 
FFEA 2016 -10 Website Mistakes Even Great Marketers Can Make
FFEA 2016 -10 Website Mistakes Even Great Marketers Can MakeFFEA 2016 -10 Website Mistakes Even Great Marketers Can Make
FFEA 2016 -10 Website Mistakes Even Great Marketers Can Make
 
Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...
Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...
Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...
 
The Presentation Come-Back Kid
The Presentation Come-Back KidThe Presentation Come-Back Kid
The Presentation Come-Back Kid
 
10 Tips for WeChat
10 Tips for WeChat10 Tips for WeChat
10 Tips for WeChat
 
20 Ideas for your Website Homepage Content
20 Ideas for your Website Homepage Content20 Ideas for your Website Homepage Content
20 Ideas for your Website Homepage Content
 

Ähnlich wie Mo devoptimization

网站前段性能优化-品友互动
 网站前段性能优化-品友互动 网站前段性能优化-品友互动
网站前段性能优化-品友互动Shaoning Pan
 
Dell data protection
Dell data protectionDell data protection
Dell data protectionssuser1eca7d
 
Efficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQEfficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQconnectwebex
 
Security - Part II.pdf
Security - Part II.pdfSecurity - Part II.pdf
Security - Part II.pdfShaiAlmog1
 
Jailbreak Detector Detector
Jailbreak Detector DetectorJailbreak Detector Detector
Jailbreak Detector DetectorNick Mooney
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentcjolif
 
iOS Development - Tips & Tricks
iOS Development - Tips & TricksiOS Development - Tips & Tricks
iOS Development - Tips & Tricksit-tour
 
iOS development - tips & tricks
iOS development - tips & tricksiOS development - tips & tricks
iOS development - tips & tricksStefan Tsvyatkov
 
IT guide to data storage and protection
IT guide to data storage and protectionIT guide to data storage and protection
IT guide to data storage and protectiondoogstone
 
Securing User Data with SQLCipher
Securing User Data with SQLCipherSecuring User Data with SQLCipher
Securing User Data with SQLCipherCommonsWare
 
企業應用行動化開發架構
企業應用行動化開發架構企業應用行動化開發架構
企業應用行動化開發架構湯米吳 Tommy Wu
 
iOS application (in)security
iOS application (in)securityiOS application (in)security
iOS application (in)securityiphonepentest
 
Tighten your Security and Privacy
Tighten your Security and PrivacyTighten your Security and Privacy
Tighten your Security and Privacyconnectwebex
 
Securing Android Applications
Securing Android ApplicationsSecuring Android Applications
Securing Android ApplicationsInfosys
 
How to map Domain changes on an existing Database
How to map Domain changes on an existing DatabaseHow to map Domain changes on an existing Database
How to map Domain changes on an existing DatabasePhilip Washington Sorst
 
Presentation15 parse xml
Presentation15 parse xmlPresentation15 parse xml
Presentation15 parse xmlAnkit Desai
 

Ähnlich wie Mo devoptimization (20)

网站前段性能优化-品友互动
 网站前段性能优化-品友互动 网站前段性能优化-品友互动
网站前段性能优化-品友互动
 
Dell data protection
Dell data protectionDell data protection
Dell data protection
 
Efficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQEfficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQ
 
Security - Part II.pdf
Security - Part II.pdfSecurity - Part II.pdf
Security - Part II.pdf
 
Jailbreak Detector Detector
Jailbreak Detector DetectorJailbreak Detector Detector
Jailbreak Detector Detector
 
Sightly_techInsight
Sightly_techInsightSightly_techInsight
Sightly_techInsight
 
Enabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo componentEnabling the mobile Web for a Dojo component
Enabling the mobile Web for a Dojo component
 
Plone pwns
Plone pwnsPlone pwns
Plone pwns
 
iOS Development - Tips & Tricks
iOS Development - Tips & TricksiOS Development - Tips & Tricks
iOS Development - Tips & Tricks
 
iOS development - tips & tricks
iOS development - tips & tricksiOS development - tips & tricks
iOS development - tips & tricks
 
IT guide to data storage and protection
IT guide to data storage and protectionIT guide to data storage and protection
IT guide to data storage and protection
 
Securing User Data with SQLCipher
Securing User Data with SQLCipherSecuring User Data with SQLCipher
Securing User Data with SQLCipher
 
企業應用行動化開發架構
企業應用行動化開發架構企業應用行動化開發架構
企業應用行動化開發架構
 
iOS application (in)security
iOS application (in)securityiOS application (in)security
iOS application (in)security
 
Tighten your Security and Privacy
Tighten your Security and PrivacyTighten your Security and Privacy
Tighten your Security and Privacy
 
Securing Android Applications
Securing Android ApplicationsSecuring Android Applications
Securing Android Applications
 
How to map Domain changes on an existing Database
How to map Domain changes on an existing DatabaseHow to map Domain changes on an existing Database
How to map Domain changes on an existing Database
 
Sjug aug 2010_cloud
Sjug aug 2010_cloudSjug aug 2010_cloud
Sjug aug 2010_cloud
 
Code to go Android
Code to go AndroidCode to go Android
Code to go Android
 
Presentation15 parse xml
Presentation15 parse xmlPresentation15 parse xml
Presentation15 parse xml
 

Kürzlich hochgeladen

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Mo devoptimization

  • 1. © 2012 Citrrus LLC. All Rights Reserved.
  • 2. The iPhone will prove to be more historically significant than the Personal Computer © 2012 Citrrus LLC. All Rights Reserved.
  • 3. Above a Bar © 2012 Citrrus LLC. All Rights Reserved.
  • 4. Agile Optimization Start slow... © 2012 Citrrus LLC. All Rights Reserved.
  • 5. DebugLog... your best friend #ifdef DEBUG #define DebugLog(...) NSLog(@"%s (%d) %@", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:__VA_ARGS__]) #else #define DebugLog(...) #endif 2012-05-07 18:02:20.775 UVA Magazine[4509:17c03] -[PDFPageViewController viewWillAppear:] (78) View Will Appear for PDF Page © 2012 Citrrus LLC. All Rights Reserved.
  • 6. Perception “Beauty is everywhere a welcome guest.” Johann Wolfgang von Goethe © 2012 Citrrus LLC. All Rights Reserved.
  • 7. Images... more than meets the eye +[UIImage imageNamed:] * Reads file * Uncompresses * Caches +[UIImage imageWithContentsOfFile:] * Checks access to file * File is read and uncompressed when image drawn © 2012 Citrrus LLC. All Rights Reserved.
  • 8. Images... more than meets the eye © 2012 Citrrus LLC. All Rights Reserved.
  • 9. Memory Management Use Less Release Early and Often © 2012 Citrrus LLC. All Rights Reserved.
  • 10. Networking Combine Requests Compact your data © 2012 Citrrus LLC. All Rights Reserved.
  • 11. Fast Scrolling Do your own drawing Reuse/Recycle Don’t get in the way of the main thread © 2012 Citrrus LLC. All Rights Reserved.
  • 12. Burn the resource you have Memory vs CPU © 2012 Citrrus LLC. All Rights Reserved.
  • 13. CoreData + SQLite CoreData + SQLite = partial file access -[NSData initWithContentsOfFile] = full file access © 2012 Citrrus LLC. All Rights Reserved.
  • 14. Enumeration objectAtIndex for(int i=0;i<count;i++) { id item; item = [myObjects objectAtIndex:i]; NSLog(@"Found an Item: %@",item); } NSFastEnumeration for(id item in myObjects) { NSLog@"Found an Item: %@",item); } © 2012 Citrrus LLC. All Rights Reserved.