Instruments

RSS for tag

Instruments is a performance-analysis and testing tool for iOS, iPadOS, watchOS, tvOS, and macOS apps.

Posts under Instruments tag

200 Posts

Post

Replies

Boosts

Views

Activity

Instruments: Allocation shows different results on iOS 17
Hey, I'm learning Instruments (Xcode 15.1), and I've encountered a situation for which I haven't found an answer yet. I have an application that loads 12 large images, with the last one taking the most space at 147MB. Instruments on the iOS 15 simulator correctly shows 21 allocations, as in the example from the book, because the last image is split into smaller parts due to poor optimization. But if I run the same example on the iOS 17 simulator, I have even fewer allocations than loaded images. And my question is whether memory allocation for large images is handled differently in iOS 17, or where can I read more about it?
0
0
774
Dec ’23
App runs 2x slower when not launched by Xcode debugger
Hi! I have a macOS app and it uses around 2x more CPU when it's not launched by the Xcode debugger. This is not about build optimization or anything. I can use the exact same executable, and when I launch it directly by double clicking it in Finder it's uses 2x as much CPU as when I launch the executable through the Debug > Debug Executable... option in Xcode. I did some CPU profiling in Instruments, and there is only one difference I could find so far when the app is launched by the Xcode debugger: There is an entry in the trace named CA::Context::commit_transaction(CA::Transaction*, double, double) | Quartz Core. This entry always appears. But - If, and only if the app is not launched by the Xcode debugger, this entry has a child entry _dispatch_async_f_slow which itself has children that seem to be related to dispatch queue "introspection". It looks kind of like this: v CA::Context::commit_transaction(CA::Transaction*, double, double) v _dispatch_async_f_slow > _dispatch_introspection_queue_item_enqueue_hook _dispatch_trace_item_push_internal dispatch_introspection_queue_item_get_info > _dispatch_introspection_queue_item_enqueue Now this alone doesn't account for the huge difference in CPU usage, but my best theory is that this dispatch queue introspection stuff is done all over the app, and cumulatively leads to the 2x slowdown. I'm running Xcode Version 15.1 (15C65) macOS 14.1.2 (23B92) M1 MacBook Air If you have any clue how to prevent this slowdown when the Xcode debugger is not attached please let me know. Thank you so much!
8
0
1.7k
Dec ’23
Unable to Profile App using Xcode 15.0 (15A240d)
Hi, I am trying to debug an issue when running Profile within Xcode, the binary builds and is signed for release. When I inspect the entitlements file, get-task-allow is always false. I have the following settings that I have seen in the forums work for others but to no avail for our setup. CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES DEPLOYMENT_POSTPROCESSING = NO Using manual signing setup, provisioning profile and certs are working fine and the binary launches fine on device. However when it comes to pressing record in instruments, I get the following: Permission to debug {app bundle ID} was denied. Recovery Suggestion: The app must be debuggable and signed with 'get-task-allow'. I don't have any other ideas on how to debug/troubleshoot this further. Any help would be great, it's an old project so
3
1
2.1k
Dec ’23
Instruments 15.0.1: Unintended Recording of Additional Process Traces
I'm tracing a process, specifically focusing on the Metal device track, which records frames from other processes like Terminal, WindowServer, and sometimes processes that utilize the GPU. I attempted tracing with all apps closed and only Instruments running. However, it also records traces for Instruments. This behavior wasn't present in previous versions of Instruments. Was there a recent change in Instruments/Xcode 15.0.1? I cannot find any relevant information about this in the release notes either. Is there a way to configure Instruments to record only the running process?
1
0
678
Nov ’23
How do I list iPhones and iPads currently connected to my MAC??
To run UI tests on actual devices, I use the following command to list devices possibly connected to my MAC: xcrun xctrace list devices As you know it shows a list of simulators and actual devices. BUT it also shows actual devices NOT currently connected to my MAC. If they are not currently connected, I do not wish to see them. Once a device is connected, it seems to always show up in the [== Devices ==] list. Even after I disconnect the device it will still show up there. And my software thinks it can run tests on these devices. Does anyone know how to get a correct list of devices which are currently connected to the MAC??
0
1
867
Nov ’23
Instruments 15.0.1 on Sonoma 14.1.1 and CORE_ACTIVE_CYCLE kernel always 0
Hi, I have a few traces where I have samples for kernel (and other processes), yet kernel is always 0 for any CPU Counter selected. There are other processes with an equivalent number of samples where the counter values appear. Perhaps there is a bit of 'art' to get the kernel counters to populate? I am trying to understand the workload from the system perspective (not simply the narrower process perspective), and it would be helpful to have the counter values. I've tried running for extended durations, yet that doesn't seem to adjust the counted events. I've adjusted to include "High Frequency Sampling" to resolve issues with VMware counter collection. Yet.. I need help to enable counter values to appear for kernel. Sam
3
0
783
Nov ’23
CoreML Instrument Requires get-task-allow Entitlement
I'm using some CoreML models from C++. I've been trying to profile them using the CoreML Instrument in Instruments. It seems that that only works when I sign my binaries with the get-task-allow entitlement. Is there an easier way? Ideally I'd like to be able to profile a Python program that calls my C++ code and I would rather not re-sign Python.
8
0
1.4k
Oct ’23
Instruments: why? “Failed to gain authorization”
I have a swift 5.4 package manager project with an executable target I want to profile in Instruments. I Cmd+I to profile which launches instruments. I pick allocations. then push the record button. im asked to authorise and doesn’t matter whether I use fingerprint or password I always get the error: (before run started) Failed to gain authorization any ideas? instruments 12.5 xcode 11.5 swift 5.4 2020 M1 MBP 13”
10
3
11k
Oct ’23
Instruments - “Keyboard.prefPane” can’t be found.
Steps to reproduce: Open Instruments app Settings Select recording tab (Next to General) Click Open Keyboard Shortcut preferences to produce the aforementioned error. Profiler Version 15.1 (15C65) - Instruments macOs 14.1.2 (23B92) Thanks all.
Replies
1
Boosts
0
Views
827
Activity
Jan ’24
how to set run duration for dyld activity instrument
Hi, I noticed that when I use dyld activity instrument run duration is about 20s Is it possible to customized it? I'd like to set it to something more, so when I start process I would able to capture event that could happen more than 20s after process start thanks
Replies
1
Boosts
0
Views
803
Activity
Jan ’24
Instruments: Allocation shows different results on iOS 17
Hey, I'm learning Instruments (Xcode 15.1), and I've encountered a situation for which I haven't found an answer yet. I have an application that loads 12 large images, with the last one taking the most space at 147MB. Instruments on the iOS 15 simulator correctly shows 21 allocations, as in the example from the book, because the last image is split into smaller parts due to poor optimization. But if I run the same example on the iOS 17 simulator, I have even fewer allocations than loaded images. And my question is whether memory allocation for large images is handled differently in iOS 17, or where can I read more about it?
Replies
0
Boosts
0
Views
774
Activity
Dec ’23
App runs 2x slower when not launched by Xcode debugger
Hi! I have a macOS app and it uses around 2x more CPU when it's not launched by the Xcode debugger. This is not about build optimization or anything. I can use the exact same executable, and when I launch it directly by double clicking it in Finder it's uses 2x as much CPU as when I launch the executable through the Debug > Debug Executable... option in Xcode. I did some CPU profiling in Instruments, and there is only one difference I could find so far when the app is launched by the Xcode debugger: There is an entry in the trace named CA::Context::commit_transaction(CA::Transaction*, double, double) | Quartz Core. This entry always appears. But - If, and only if the app is not launched by the Xcode debugger, this entry has a child entry _dispatch_async_f_slow which itself has children that seem to be related to dispatch queue "introspection". It looks kind of like this: v CA::Context::commit_transaction(CA::Transaction*, double, double) v _dispatch_async_f_slow > _dispatch_introspection_queue_item_enqueue_hook _dispatch_trace_item_push_internal dispatch_introspection_queue_item_get_info > _dispatch_introspection_queue_item_enqueue Now this alone doesn't account for the huge difference in CPU usage, but my best theory is that this dispatch queue introspection stuff is done all over the app, and cumulatively leads to the 2x slowdown. I'm running Xcode Version 15.1 (15C65) macOS 14.1.2 (23B92) M1 MacBook Air If you have any clue how to prevent this slowdown when the Xcode debugger is not attached please let me know. Thank you so much!
Replies
8
Boosts
0
Views
1.7k
Activity
Dec ’23
Unable to Profile App using Xcode 15.0 (15A240d)
Hi, I am trying to debug an issue when running Profile within Xcode, the binary builds and is signed for release. When I inspect the entitlements file, get-task-allow is always false. I have the following settings that I have seen in the forums work for others but to no avail for our setup. CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES DEPLOYMENT_POSTPROCESSING = NO Using manual signing setup, provisioning profile and certs are working fine and the binary launches fine on device. However when it comes to pressing record in instruments, I get the following: Permission to debug {app bundle ID} was denied. Recovery Suggestion: The app must be debuggable and signed with 'get-task-allow'. I don't have any other ideas on how to debug/troubleshoot this further. Any help would be great, it's an old project so
Replies
3
Boosts
1
Views
2.1k
Activity
Dec ’23
Instruments 15.0.1: Unintended Recording of Additional Process Traces
I'm tracing a process, specifically focusing on the Metal device track, which records frames from other processes like Terminal, WindowServer, and sometimes processes that utilize the GPU. I attempted tracing with all apps closed and only Instruments running. However, it also records traces for Instruments. This behavior wasn't present in previous versions of Instruments. Was there a recent change in Instruments/Xcode 15.0.1? I cannot find any relevant information about this in the release notes either. Is there a way to configure Instruments to record only the running process?
Replies
1
Boosts
0
Views
678
Activity
Nov ’23
How do I list iPhones and iPads currently connected to my MAC??
To run UI tests on actual devices, I use the following command to list devices possibly connected to my MAC: xcrun xctrace list devices As you know it shows a list of simulators and actual devices. BUT it also shows actual devices NOT currently connected to my MAC. If they are not currently connected, I do not wish to see them. Once a device is connected, it seems to always show up in the [== Devices ==] list. Even after I disconnect the device it will still show up there. And my software thinks it can run tests on these devices. Does anyone know how to get a correct list of devices which are currently connected to the MAC??
Replies
0
Boosts
1
Views
867
Activity
Nov ’23
Instruments 15.0.1 on Sonoma 14.1.1 and CORE_ACTIVE_CYCLE kernel always 0
Hi, I have a few traces where I have samples for kernel (and other processes), yet kernel is always 0 for any CPU Counter selected. There are other processes with an equivalent number of samples where the counter values appear. Perhaps there is a bit of 'art' to get the kernel counters to populate? I am trying to understand the workload from the system perspective (not simply the narrower process perspective), and it would be helpful to have the counter values. I've tried running for extended durations, yet that doesn't seem to adjust the counted events. I've adjusted to include "High Frequency Sampling" to resolve issues with VMware counter collection. Yet.. I need help to enable counter values to appear for kernel. Sam
Replies
3
Boosts
0
Views
783
Activity
Nov ’23
xctrace record command high probability lead app hang.
➜ ~ xctrace version xctrace version 15.0.1 (15A507) in my project, i use xctrace record command to attach exist app process, it high probability lead app hang, but attach is ok; how can i solve this problem?
Replies
1
Boosts
0
Views
634
Activity
Nov ’23
what does this "backboardd" mean?
It seems this ops shows up many times, can anyone tell me what it is plz.?
Replies
1
Boosts
0
Views
2.8k
Activity
Nov ’23
what does this average frame time mean?
Hi, I'm using Instrument to profile my metal app, found a metric called display ( average frame time ) shows much longer than what expected. Is this truly the frame time ? Or did I misunderstand something ?
Replies
1
Boosts
0
Views
1.1k
Activity
Nov ’23
Intruments Leaks - Required kernel recording resources are in use by another document
Hello, I have a macbook for 1 year and I could never use Instruments Leaks. I always get these messages: ) I have already reinstall my mac, I use the Xcode version 15, I tried to delete and reinstall Xcode. Nothing is working. Can somebody help me please?
Replies
0
Boosts
0
Views
754
Activity
Nov ’23
what is this coreanimation.offscreen encoder mean ?
this encoder happens to make gpu bubble, wondering what it is , and how to get rid of it, thx.
Replies
2
Boosts
0
Views
825
Activity
Nov ’23
question about gpu performance state and gpu activity
as you can see, gpu performance start earlier than gpu activity, i don't know why? thx
Replies
0
Boosts
0
Views
651
Activity
Nov ’23
why there are so many display devices ?
I'm using instrument to profile my metal app, found there are more than one display devices shows on my view, I'm wondering what these display devices mean, thx .
Replies
1
Boosts
0
Views
1.1k
Activity
Nov ’23
Collecting profiling data for later analysis in Instruments
I would like to be able to collect profiling data on a physical device, say when I am going for a run, and later analyze that data using instruments. Is there a way to do that?
Replies
1
Boosts
0
Views
936
Activity
Oct ’23
CoreML Instrument Requires get-task-allow Entitlement
I'm using some CoreML models from C++. I've been trying to profile them using the CoreML Instrument in Instruments. It seems that that only works when I sign my binaries with the get-task-allow entitlement. Is there an easier way? Ideally I'd like to be able to profile a Python program that calls my C++ code and I would rather not re-sign Python.
Replies
8
Boosts
0
Views
1.4k
Activity
Oct ’23
Time Profiler "Required Kernel Recording Resources Are in Use" Error
Hi, I'm using XCode 12.5 on Big Sur. When running the Time Profiler, I'm getting an error "required kernel recording resources are in use by another document". I tried restarting XCode and my computer but it still didn't work. Any idea why?
Replies
11
Boosts
0
Views
7.8k
Activity
Oct ’23
Instruments: why? “Failed to gain authorization”
I have a swift 5.4 package manager project with an executable target I want to profile in Instruments. I Cmd+I to profile which launches instruments. I pick allocations. then push the record button. im asked to authorise and doesn’t matter whether I use fingerprint or password I always get the error: (before run started) Failed to gain authorization any ideas? instruments 12.5 xcode 11.5 swift 5.4 2020 M1 MBP 13”
Replies
10
Boosts
3
Views
11k
Activity
Oct ’23
Instruments crashed in profiling Animation Hitches for iPhone 15Pro
Error info is below. Time Awake Since Boot: 1500 seconds System Integrity Protection: disabled Crashed Thread: 13 Dispatch queue: com.apple.dt.frame.activity Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000009 Exception Codes: 0x0000000000000001, 0x0000000000000009
Replies
1
Boosts
1
Views
858
Activity
Oct ’23