Instruments

RSS for tag

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

Instruments Documentation

Posts under Instruments tag

96 Posts
Sort by:
Post not yet marked as solved
2 Replies
759 Views
Instruments in XCode 14 used to support CPU counters in A16 with iOS 16.x, but after I upgrade iOS to 17.1 and also XCode to 15.0.1, In "CPU Counters", it says "CPU Name: Unsupported" and thus I cannot choose "Sample by" events etc. Found some link on this:https://stackoverflow.com/questions/77344529/is-latest-instruments-not-support-a17-pro-for-cpu-counters Please help to confirm this is some known issue, and if so, how to fix it. Thanks!
Posted
by Carton2.
Last updated
.
Post not yet marked as solved
0 Replies
409 Views
In my iOS project, there is an infrequent crash related to virtual memory problem. Therefore, I plan to use UITest in combination with Product/Perform Action/Profile "TestCaseName" to conduct Game Performance-type testing. This allows the automatic testing to continuously operate until the profile stops recording upon a crash. This enables me to observe the various states of the program at the time of the crash. However, I have found that the UITest using Profile is highly unstable. The UITestCase often terminates unexpectedly during execution, leading to failed tests (Instruments is still working). Sometimes, the app is terminated immediately after startup. It seems that the use of sleep() in the code can easily cause interruption issues, which do not occur during normal UI testing. I am wondering if anyone has experience using Profile for UITest and whether they have encountered the issues I described." Working Environment: XCode14.3.1, iPhone Device iOS17.2
Posted Last updated
.
Post not yet marked as solved
0 Replies
310 Views
When I use Instruments to record Allocation, the phone will display a dialog box indicating that the phone is unlocked when the screen is locked, as shown in Figure 1. When I have started recording allocation and lock the screen 10s later, the allocation can be recorded normally. For details, see Figure 2. I want to know why. Start recording for 10s and lock the screen on the device. The recording can be performed normally. What is the principle of this?
Posted
by Scilence.
Last updated
.
Post not yet marked as solved
1 Replies
368 Views
Instruments freeze when WKWebView is created I create a very simple mac os application If I create a WKWebView like this " (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.webview = [[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 500, 500)]; } " Then the instruments freeze when I record allocations Why? If I remove the creation of WKWebView, everything works fine I'm using Xcode 14.2
Posted Last updated
.
Post not yet marked as solved
13 Replies
5.9k Views
I just downloaded Xcode 15 RC and iOS 17 RC on an iPhone Xr. When running the app it seems to run fine however when trying to run in profile mode I get the error: Failed to install embedded profile for com...* : 0xe800801f (Attempted to install a Beta profile without the proper entitlement.) Verify that the Developer App certificate for your account is trusted on your device. Open Settings on the device and navigate to General -> VPN & Device Management, then select your Developer App certificate to trust it. Does anyone have any insight into what the issue may be? There is nothing to select within VPN & Device Management when I navigate there
Posted
by ukor_navi.
Last updated
.
Post not yet marked as solved
1 Replies
380 Views
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.
Posted Last updated
.
Post not yet marked as solved
1 Replies
446 Views
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
Posted
by dmarkman.
Last updated
.
Post not yet marked as solved
0 Replies
380 Views
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?
Posted
by miltenkot.
Last updated
.
Post not yet marked as solved
8 Replies
760 Views
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!
Posted Last updated
.
Post not yet marked as solved
2 Replies
616 Views
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
Posted
by alancooke.
Last updated
.
Post not yet marked as solved
1 Replies
337 Views
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?
Posted
by nullspace.
Last updated
.
Post not yet marked as solved
0 Replies
346 Views
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??
Posted
by dunamase.
Last updated
.
Post not yet marked as solved
1 Replies
328 Views
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
Posted
by srwarner.
Last updated
.
Post not yet marked as solved
0 Replies
299 Views
➜ ~ 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?
Posted
by runhwguo.
Last updated
.
Post not yet marked as solved
1 Replies
531 Views
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 ?
Posted Last updated
.