Android Speed up your app
We'll talk about.. <ul><li>Profiling with Traceview
Helping the GC with HPROF
Optimizing layouts with HierarchyViewer
Playing tough with StrictMode </li></ul>
whoami
Traceview Profiling <ul><li>Performance of each method
Graphical interface
Run from DDMS or code </li></ul>
Traceview Profiling
Traceview Profiling Inclusive: Includes child functions Exclusive: This function only
Traceview Profiling
Traceview Profiling <ul>So...what's the problem here? </ul>
Helping out the GC <ul><li>Allocation Tracker (DDMS) </li></ul>
Helping out the GC <ul><li>Memory profiling -> Dalvik HPROF file
Use code or DDMS
Upcoming SlideShare
Loading in...5
×

Android preformance

1,700

Published on

This presentation is all about speeding your Android app. Describing the tools to do so, with screenshots and more.
For a full blog post on that same subject - go to http://www.udinic.com

Published in: Technology, Spiritual
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,700
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
37
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide
  • לפני שמציג עצמי: כמה אנדרואיד? וכמה JAVA לפני כן? מעבר מסביבות חזקות לסביבה חלשה (יחסית) אתן כלים למציאת בעיות מי אני? מפתח מעל 10 שנים JAVA וC++ משיכה לטכנולוגיות “מעוטות משאבים” J2ME SYMBIAN וsmartCard Developmnet כיום מפתח אנדרואיד בחברת Any.DO מדבר מהר
  • להריץ מהקוד בשביל דיוק רב יותר
  • ככה מריצים דרך הDDMS
  • סרגל צבעים למעלה אפשר לחפש לפי Exclusive או לעשות Drill-down מהמתודות הגבוהות ב Inclusive
  • מי קרא לי ולמי אני קורא כמה אחוזי ריצה יחסיים לשלי לקחו הקריאות לבנים שלי
  • - לא בעיה באלגוריתם של הGC - הרבה אובייקטים שנוצרים - אי שיחרור אובייקטים בגלל רפרנסים או דליפה בערך עד 16 מילישניות ריצה בשביל שהכל ירוץ חלק
  • מובנה בDDMS מראה אובייקטים לפי סדר ההקצאות שלהם מראה STACK TRACE של מי שיצר את האובייקט
  • HPROF קובץ סטנדרטי שמכיל דאמפ של הזיכרון מכיל סנאפשוט של הזיכרון עם כל האובייקטים יש להשתמש בכלי (SDK) כדי להמיר לפורמט HPROF סטנדרטי של JAVA יש הרבה כלים לניתוח המידע, אני עבדתי עם Eclipse MAT
  • דוחות – דליפה או בזבוז זיכרון סטרינגים כפולים או רפרנסים חלשים שלא התנקו
  • היסטוגרמה של האובייקטים עץ אובייקטים – מי מכיל מה וכמה נוצרו אפשר לראות מה הערכים שבתוך האובייקטים אפשר להריץ שליפות ולחפש אובייקטים זהים String.intern() סיפור GMAIL
  • - בעיות למשל: לייאאוטים מיותרים או שימוש ביותר מדי VIEWS - זמני טעינה של כל הקומפוננטות (כולל דירוגם ביחד לאחרים) - מיקום כל קומפוננטה במסך - מאפיינים של כל קומפוננטה
  • - כלי בדיקה בזמן פיתוח - מגדיר נהלים במקרה של ארועים מסויימים - פעולות רשת - כתיבה לדיסק - זיהוי אובייקטי DB שדלפו (CURSOR לא סגור) מודיע במגוון דרעים אם הUI נתקע – אולי יש פעולה כבדה שרצה ברקע. ככה נוכל לברר אם יש פעולה שלא אמורה להיות בUI
  • Android preformance

    1. 1. Android Speed up your app
    2. 2. We'll talk about.. <ul><li>Profiling with Traceview
    3. 3. Helping the GC with HPROF
    4. 4. Optimizing layouts with HierarchyViewer
    5. 5. Playing tough with StrictMode </li></ul>
    6. 6. whoami
    7. 7. Traceview Profiling <ul><li>Performance of each method
    8. 8. Graphical interface
    9. 9. Run from DDMS or code </li></ul>
    10. 10. Traceview Profiling
    11. 11. Traceview Profiling Inclusive: Includes child functions Exclusive: This function only
    12. 12. Traceview Profiling
    13. 13. Traceview Profiling <ul>So...what's the problem here? </ul>
    14. 14. Helping out the GC <ul><li>Allocation Tracker (DDMS) </li></ul>
    15. 15. Helping out the GC <ul><li>Memory profiling -> Dalvik HPROF file
    16. 16. Use code or DDMS
    17. 17. Use hprof-conv to convert to standard
    18. 18. Use any Java HPROF analyzer </li></ul>
    19. 19. Helping out the GC <ul><li>Eclipse MAT (Memory Analyzer Tool) </li></ul>
    20. 20. Helping out the GC <ul><li>Histogram & Dominator tree </li></ul>
    21. 21. <ul>GUI Optimization </ul><ul><li>layoutopt </li><ul><li>Comes with the SDK
    22. 22. Scan the layout XML for optimizations
    23. 23. Not very helpful </li></ul><li>Hierarchy Viewer </li><ul><li>Tree view of the layout
    24. 24. Loading times for all the components
    25. 25. Components' properties </li></ul></ul>
    26. 26. Hierarchy Viewer
    27. 27. StrictMode <ul><li>Problems Detector
    28. 28. Single thread or the entire machine
    29. 29. Show dialog, write to Log and more..
    30. 30. Usually used to detect slow operations on UI thread
    31. 31. Came with Gingerbread (2.3) </li></ul>
    32. 32. Thank you @udinic http://www.udinic.com [email_address]
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×