How to improve your Tizen native program
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

How to improve your Tizen native program

on

  • 1,001 views

The Dynamic Analyzer in Tizen SDK, helps the developers to improve the performance and stability of their application easily. With the following demo, you can find the bottleneck point, unstable usage ...

The Dynamic Analyzer in Tizen SDK, helps the developers to improve the performance and stability of their application easily. With the following demo, you can find the bottleneck point, unstable usage of memory, file, thread, network, openGL and functions of application and library. Some of them are done by automatically and some are by manually but easily. With the debugger, you must pause the application at a certain point to analyze, and it is still hard to get statistical and analytic information. This tool will resolve these regret, and make yourselves experience wider view of application analysis. For the more, this tool have the potential to add more applicable ideas of analysis.

Statistics

Views

Total Views
1,001
Views on SlideShare
640
Embed Views
361

Actions

Likes
0
Downloads
5
Comments
0

19 Embeds 361

http://www.tizenexperts.com 230
http://www.tizenus.com 32
http://feedly.com 29
http://tizenindonesia.blogspot.com 28
http://tizenindonesia.blogspot.de 8
http://www.hanrss.com 8
http://www.tizentech.com 7
http://reader.aol.com 5
http://translate.googleusercontent.com 2
http://www.newsblur.com 2
http://tizenindonesia.blogspot.co.uk 2
http://inoreader.com 1
http://tizenindonesia.blogspot.be 1
http://tizenindonesia.blogspot.nl 1
https://www.commafeed.com 1
http://tizenindonesia.blogspot.kr 1
http://tizenindonesia.blogspot.ru 1
http://www.verious.com 1
http://tizenindonesia.blogspot.jp 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

How to improve your Tizen native program Presentation Transcript

  • 1. How to improve the quality of your tizen applications and platform Introduction of Tizen SDK Dynamic Analyzer S-Core Juyoung Kim (j0.kim@samsung.com) Co-worker: Jooyoul Lee, Jaewon Lim, Sanghyun Lee, Woojin Jung, Hyunjong Park, Yeongtaik Byeon and Hyungoo Kang
  • 2. Why we want to improve … Because we are not satisfied … The improvement starts from the dissatisfaction. Then what’s next…? Take the steps to find the solution 2
  • 3. The Step of finding solution Dissatisfaction Define the problem Analyze the cause I am not satisfied with the speed. Where is the problem: engine or tire? Why the engine is not fast enough? 3 Find a solution
  • 4. The Step of finding solution Dissatisfaction Define the problem Analyze the cause What is the cause of tilt: GOD or The ground? 4 Find a solution
  • 5. The key of improvement Dissatisfaction Define the problem Analyze the cause You need a Tool!!! The Dynamic Analyzer 5 Find a solution
  • 6. Contents • Define the problem: Finding the optimization points • • • The bottleneck point The waiting state Analyze the cause: Finding the mistake • • • Leaks Function usage bugs Additional Support for • Network programming • OpenGL ES programming • • 6 Demonstration Summary
  • 7. Define the problem: Finding the optimization points
  • 8. Finding the optimization points (1/4) • The bottleneck point • Bottleneck: core routine, the busiest part • Optimizing the bottleneck is one of the most effective way to make you program fast High CPU load area 4. Frequently called functions 1. high exclusive CPU time 2. high exclusive elapsed time 8 3. high inclusive time
  • 9. Finding the optimization points (2/4) • The bottleneck point: Multi-Thread case • The critical path : The longest serialized path • Optimizing the routine in this path is more effective than the other path Critical Path 9
  • 10. Finding the optimization points (3/4) • the waiting state • The waiting state makes your program slow when need to be fast Low CPU time and high elapsed time File IO wait time Low CPU load area Network IO wait time 10
  • 11. Finding the optimization points (4/4) • the waiting state point: Multi-Thread case • Waiting for critical section Not related to this mutex lock waiting Critical section 11
  • 12. Analyze the cause: Finding the mistake
  • 13. Analyzing the cause of mistake (1/2) • How can I find the Leaks • Heap chart • Leak (candidate) • Range based analysis See the trend Set the range Valgrind in Tizen SDK IDE • • Overrunning the top of the stack. • Accessing memory after it has been freed. • Using undefined values. • Double-freeing heap blocks. • Mismatch of malloc/new/new[] versus free/delete/delete[]. • Overlapping src and dst pointers in memcpy-like • 13 Overrunning and underrunning heap blocks. Memory leaks.
  • 14. Analyzing the cause of mistake (2/2) • How can I find the bugs • • 14 Failed API List Call trace: Function’s parameter and return value
  • 15. Additional Support for Network & OpenGL ES programming
  • 16. Support for OpenGL ES Programming (1/2) • What is important in OpenGL • Need to keep up a certain amount of frame rate low frame rate long elapsed time 16 Check unnecessary/erroneous state changing
  • 17. Support for OpenGL ES Programming (2/2) • What is important in OpenGL • Error handling per frame Failed api existed Error code Error Description 17
  • 18. Support for network programming (1/2) • The pain point of network program • Additional problems in network environment Destination address Connection failed Connection state Check error code 18
  • 19. Support for network programming (2/2) • The pain point of network program • The miss-match of the protocol Check the protocol order 19 Check the payload contents
  • 20. Demonstration
  • 21. Summary
  • 22. The Tizen SDK Dynamic Analyzer supports... • Timeline Chart • • • CPU load, Heap/Memory usage, Process size, UI event, File usage Tizen application’s lifetime, Custom chart Summary: • • Failed API, Leak, Function profiling, Warning Analysis components • • Thread: thread & synchronization analysis • • File: file lifetime analysis UI: Tizen UI Controls, Scene Transition History Others • • Record & replay, Save the trace • Source code link • Range based analysis • • Call trace, Callstack Screenshot New in Tizen 3.0 • • OpenGL ES Analysis: Frame rate, Context Navigation • No more build option • Scheduling & System call information • 22 Network Analysis: Connection state, Transmitted data Support Tizen service/hybrid applications, platform libary, multi-process
  • 23. The Next Dynamic Analyzer • To make your program better • • The Dynamic Analyzer is indispensable To be continued… • Advanced Thread Analysis Auto detecting critical path Concurrency level information Thread load balancing Deadlock detection • Advanced OpenGL Analysis Multi-thread/multi-context profiling Pause and Dump Auto detecting of wasteful and inefficient 3D operation • • Support more for debugging • 23 Detailed profiling of Application’s launch time And more …