{"id":2004,"date":"2016-05-13T19:43:30","date_gmt":"2016-05-13T14:13:30","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=2004"},"modified":"2017-02-03T18:51:19","modified_gmt":"2017-02-03T13:21:19","slug":"performance-analysis-through-instruments-tool-for-ios-app","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/","title":{"rendered":"Performance Analysis through Instruments tool for iOS App"},"content":{"rendered":"<p>&nbsp;<\/p>\n<h2><strong>Instruments Tool<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">Instruments is a powerful and flexible performance-analysis and testing tool. It is a \u00a0part of the Xcode tool set. Instruments tool is designed to help you profile your iOS applications in order to increase their performance and better utilization of resources.<\/span><\/p>\n<h2><strong>We will see<\/strong><\/h2>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">How to \u00a0find hot-spots in code using Time profiler instrument.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">How to find and fix the memory problems like strong reference cycle using Allocations instrument.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">How to reduce the memory waste by finding the abandoned memory in application using Allocations instrument.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Finding memory allocations which are deallocated and still referenced by our application using Zombies instrument.<\/span><\/li>\n<\/ol>\n<h2><strong>Launch Instruments from Xcode<\/strong><\/h2>\n<h4><span style=\"font-weight: 400\">To launch Instruments from the Xcode menu<\/span><\/h4>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Open Xcode.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Choose Xcode &gt; Open Developer Tool &gt; Instruments.<\/span><\/li>\n<\/ol>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/1.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-2006 \" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/1.png\" alt=\"1\" width=\"491\" height=\"264\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/1.png 1000w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/1-300x161.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/1-624x336.png 624w\" sizes=\"(max-width: 491px) 100vw, 491px\" \/><\/a><\/p>\n<h4><span style=\"font-weight: 400\">To profile an opened Xcode project<\/span><\/h4>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Launch Xcode and open your project.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Do one of the following:<\/span><\/li>\n<\/ol>\n<ul>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Choose Product &gt; Profile.<\/span><\/li>\n<\/ul>\n<\/ul>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/2.png\"><img decoding=\"async\" class=\"alignnone wp-image-2007 size-medium\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/2-300x292.png\" alt=\"Instruments-2\" width=\"300\" height=\"292\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/2-300x292.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/2.png 588w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<ul>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click and hold the Run button in the Xcode toolbar and choose Profile.<\/span><\/li>\n<\/ul>\n<\/ul>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/3.png\"><img decoding=\"async\" class=\"alignnone wp-image-2008 \" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/3.png\" alt=\"Instruments-3\" width=\"494\" height=\"242\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/3.png 850w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/3-300x147.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/04\/3-624x305.png 624w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/a><\/p>\n<ul>\n<li><b><b>Press Command+I.<\/b><\/b><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Xcode builds your project, Instruments launches, and you\u2019re prompted to select a profiling template.<\/span><\/p>\n<h2><strong>Instruments Tool sections<\/strong><\/h2>\n<p><a href=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/instruments-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2019 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/instruments-1.png\" alt=\"instruments-1\" width=\"1283\" height=\"736\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/instruments-1.png 1283w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/instruments-1-300x172.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/instruments-1-1024x587.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/instruments-1-624x358.png 624w\" sizes=\"(max-width: 1283px) 100vw, 1283px\" \/><\/a><\/p>\n<ul>\n<li><b><b>Recording control: <\/b><span style=\"font-weight: 400\">Start\/Stop and Pause the recording.<\/span><\/b><\/li>\n<li><b>Timer: <\/b><span style=\"font-weight: 400\">Running time and number of times application tested.<\/span><\/li>\n<li><b>Track: <\/b><span style=\"font-weight: 400\">Graphical Representation for selected tool w.r.t. time.<\/span><\/li>\n<li><b>Details Panel: <\/b><span style=\"font-weight: 400\">Detail output of the particular instrument.<\/span><\/li>\n<li><b>Inspectors Panel: <\/b><span style=\"font-weight: 400\">Record Setting, Display Setting and Extended Details.<\/span><\/li>\n<\/ul>\n<h2><strong>CPU Uses<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">In Instruments tool, we can conduct testing under variety of conditions. We can also identify that how well the application uses the threads, cores and other resources. We can balance the work with multiple threads and offload work from main thread making our app more responsive. The Time Profiler instrument shows how well an application utilizes CPU cores and threads.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Steps to find CPU Use <\/span><\/h4>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Launch Instruments tool using any one of the methods described above.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">When it asks to select a template, click Time Profiler.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Choose your device and app from the target device and process lists if they are not selected.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Red Record button in the toolbar or press Command+R to begin recording.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Use your app or the system normally.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Black Stop button in toolbar or press Command+R again when complete.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the CPU or threads strategy button in the trace document toolbar.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Examine the collected data.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">In Detail panel, you can see the time take by each method in your application. if you want to open code then you can double click on any method and if you want to edit the code you can click small xcode icon and modify the code where needed.<\/span><\/p>\n<h2><span style=\"font-weight: 400\"><strong>Memory Leak<\/strong> <\/span><\/h2>\n<p><span style=\"font-weight: 400\">When we allocate some memory in our application but we never release them and the memory no longer being referenced by your app then this is called memory leak. Since we do not have any reference to that allocated memory, we cannot release it and the memory cannot be used again by application. In Instruments tool, we have Leaks template to find the memory leaks in an application.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Steps for finding memory leaks<\/span><\/h4>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Launch Instruments<\/span><span style=\"font-weight: 400\"> tool using any one of the methods described above<\/span><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">When it asks to select a template<\/span><span style=\"font-weight: 400\">, click Leaks.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Choose your device and app from the target device and process lists if they are not selected.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Red Record button in the toolbar or press Command+R to begin recording.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Use your app normally.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Watch the Leaks instrument in the timeline pane for leaks. A leak appears as a red bar.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Leaks instrument in the timeline pane to display leak-related information in the detail pane.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Choose Call Tree from the detail type list in the navigation bar of the detail pane. This displays a list of method calls related to any detected leaks.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Press Command+2 to show the display settings area of the inspector pane.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Under the Call Tree display settings, select Invert Call Tree and Hide System Libraries.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">In the call tree, select a method call you want to investigate.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Press Command+3 to display a stack trace for the selected method call in the extended detail area of the inspector.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Double-click the method call in the stack trace to display its code in Instruments.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the small Xcode button at the top of the detail pane to open the code in Xcode for review and editing.<\/span><\/li>\n<\/ol>\n<h2><strong>Abandoned Memory<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">Abandoned Memory is the memory that is allocated by your application, but it no longer needed and also won\u2019t be referenced. Instruments cannot find abandoned memory because it is still referenced by your application. So for finding abandoned memory, we can use generational analysis. if memory continuously grows while performing some set of actions repeatedly. <\/span><\/p>\n<h4><span style=\"font-weight: 400\">Steps for finding Abandoned Memory<\/span><\/h4>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Launch Instruments<\/span><span style=\"font-weight: 400\"> tool using any one of the methods described above<\/span><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">When it asks to select a template<\/span><span style=\"font-weight: 400\">, click Allocations.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Choose your device and app from the target device and process lists.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Press Command+2 to show the display settings area of the inspector pane.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Red Record button in the toolbar or press Command+R to begin recording.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Perform a short sequence of repeatable actions in your app. In order to accurately generate trends, this should be a set of actions that starts and finishes with the app in the same state.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Mark Generation button in the inspector pane. A flag appears in the track pane to identify the generation. A list of generations you\u2019ve marked is shown in the detail pane. Each generation includes a list of allocations that has occurred since the previous generation. <\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Perform steps 6 and 7 several times while monitoring the detail pane until you see whether memory is growing without limit.<\/span><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Black Stop button in the toolbar or press Command+R again when you\u2019re ready to stop recording.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Scan through the generations in the detail pane and find one that seems representative of repeated memory growth. The Growth and Persistent columns tell you how much additional memory and how many allocations have occurred since the previous generation.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Look for objects that are persisting. If you identify one, click the disclosure triangle to display its instances.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Select an object instance.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Press Command+3 to display a stack trace for the selected instance in the extended detail area of the inspector.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Collapse button in the extended detail area to hide system calls in the stack trace. This makes it easier to locate your app\u2019s methods. Calls made by your app are colored black and preceded by a user code icon.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Double-click a method in the stack trace to display its code in Instruments.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the small Xcode button at the top of the detail pane to open the code in Xcode for editing.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Determine whether the allocation is useful. If it\u2019s not, it\u2019s abandoned memory and you should resolve it.<\/span><\/li>\n<\/ol>\n<p><b>Note: <\/b><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">During the first few iterations, extra allocations may occur due to caching. Therefore, it is important to create a few initial generations for the purpose of establishing a baseline. Then, create additional generations for true analysis.<\/span><\/p>\n<h2><strong>Zombies<\/strong><\/h2>\n<p><span style=\"font-weight: 400\">Zombie is the memory that has been released by your application but still referenced somewhere. Using that reference in your application will cause crash. In Instruments tool we can use Zombies profiling template to detect zombies in the application. It will enable NSZombie and convert each released object to type of NSZombie, so whenever your application try to call a released memory the NSZombie object will be called and Instrument will notify us.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Steps for finding Zombies<\/span><\/h4>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Launch Instruments<\/span><span style=\"font-weight: 400\"> tool using any one of the methods described above<\/span><span style=\"font-weight: 400\">.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">When it asks to select a template<\/span><span style=\"font-weight: 400\">, click Zombies.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Choose your device and app from the target device and process lists.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Red Record button in the toolbar or press Command+R to begin recording.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Use your app normally.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">If a call is made to a deallocated object, a flag is inserted in the timeline pane and a Zombie Messaged dialog appears, indicating that a message was sent to a deallocated object at a specific memory address.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">If you close the Zombie Messaged dialog, you can reopen it by clicking the flag.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the focus arrow next to the zombie\u2019s memory address to display the memory history of the zombie object in the detail pane, along with corresponding reference counts and method calls.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Select the Zombie event in the detail pane.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Press Command+3 to display a stack trace for the selected event in the extended detail area of the inspector.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Double-click a method in the stack trace to display its code in Instruments.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Click the Xcode button at the top of the detail pane to open the code in Xcode for editing.<\/span><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Instruments Tool Instruments is a powerful and flexible performance-analysis and testing tool. It is a \u00a0part of the Xcode tool set. Instruments tool is designed to help you profile your iOS applications in order to increase their performance and better utilization of resources. We will see How to \u00a0find hot-spots in code using Time [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2020,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,71,7,6],"tags":[160,89],"class_list":["post-2004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","category-mobile","category-mobile-testing","category-mobile-web-app","tag-ios","tag-iphone"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Performance Analysis through Instruments tool for iOS App - InnovationM - Blog<\/title>\n<meta name=\"description\" content=\"Performance Analysis through Instruments tool for iOS App\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Performance Analysis through Instruments tool for iOS App - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Performance Analysis through Instruments tool for iOS App\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-13T14:13:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-02-03T13:21:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/Instruments_iOS-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Performance Analysis through Instruments tool for iOS App\",\"datePublished\":\"2016-05-13T14:13:30+00:00\",\"dateModified\":\"2017-02-03T13:21:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/\"},\"wordCount\":1449,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/Instruments_iOS-1.png\",\"keywords\":[\"iOS\",\"iPhone\"],\"articleSection\":[\"iOS\",\"Mobile\",\"Mobile Testing\",\"Mobile Web App\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/\",\"name\":\"Performance Analysis through Instruments tool for iOS App - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/Instruments_iOS-1.png\",\"datePublished\":\"2016-05-13T14:13:30+00:00\",\"dateModified\":\"2017-02-03T13:21:19+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"description\":\"Performance Analysis through Instruments tool for iOS App\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/Instruments_iOS-1.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/Instruments_iOS-1.png\",\"width\":500,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/performance-analysis-through-instruments-tool-for-ios-app\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Performance Analysis through Instruments tool for iOS App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Performance Analysis through Instruments tool for iOS App - InnovationM - Blog","description":"Performance Analysis through Instruments tool for iOS App","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/","og_locale":"en_US","og_type":"article","og_title":"Performance Analysis through Instruments tool for iOS App - InnovationM - Blog","og_description":"Performance Analysis through Instruments tool for iOS App","og_url":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/","og_site_name":"InnovationM - Blog","article_published_time":"2016-05-13T14:13:30+00:00","article_modified_time":"2017-02-03T13:21:19+00:00","og_image":[{"width":500,"height":300,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/Instruments_iOS-1.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Performance Analysis through Instruments tool for iOS App","datePublished":"2016-05-13T14:13:30+00:00","dateModified":"2017-02-03T13:21:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/"},"wordCount":1449,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/Instruments_iOS-1.png","keywords":["iOS","iPhone"],"articleSection":["iOS","Mobile","Mobile Testing","Mobile Web App"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/","url":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/","name":"Performance Analysis through Instruments tool for iOS App - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/Instruments_iOS-1.png","datePublished":"2016-05-13T14:13:30+00:00","dateModified":"2017-02-03T13:21:19+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"description":"Performance Analysis through Instruments tool for iOS App","breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/Instruments_iOS-1.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2016\/05\/Instruments_iOS-1.png","width":500,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/performance-analysis-through-instruments-tool-for-ios-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Performance Analysis through Instruments tool for iOS App"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=2004"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/2004\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/2020"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=2004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=2004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=2004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}