gpt4 book ai didi

ios - 跟踪 iOS 分配时,Apple Instruments 停止工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:59:57 28 4
gpt4 key购买 nike

我正在使用 Instruments 的 Allocations 工具检查 Xamarin iOS 应用程序的内存使用情况。

我遇到 Instruments 不久后停止接收任何分配数据的问题。当问题被触发时,我没有在应用程序中看到任何内存使用情况、CPU 使用情况、时间或位置的模式,但大多数情况下它会在大约 12 秒后停止工作。

似乎在设备停止工作的同时在设备日志中记录了以下内容:

kernel[0] <Notice>: Sandbox: SalesApp(2291) deny(1) process-info-pidinfo 1530
kernel[0] <Notice>: Sandbox: SalesApp(2291) deny(1) sysctl-read kern.proc.pid.1530

可能是什么问题?

每次它停止时我都可以停止录制 Ant 重新启动它并再次运行一段时间。

我已尝试重新启动一切,但行为没有任何变化。 我知道我去年 12 月遇到过这个问题,但后来在不同版本的 Xcode、iOS、OS X、Xamarin Studio 上,我有不同的 iPad。

当前版本:

  • iOS:9 测试版 5 (13A4325c)
  • OS X:优胜美地 (10.10.5 (14F27))
  • Xcode/仪器:6.4 (6E35b)
  • Xamarin Studio:5.9.5(内部版本 10)
  • 部署目标:7.0

Instruments 的屏幕截图,记录在 7 秒后立即停止: Screenshot from Instruments[1]

最佳答案

这是一个 known issue GC 和 Instruments 之间的不幸交互导致进程死锁。

您可以拍摄一些(广角)照片来尝试让它发挥作用:

  • 通过在 FinishedLaunching 方法中执行此操作,在主线程上频繁触发 GC:

    NSTimer.CreateRepeatingScheduledTimer(0.5, (v) => GC.Collect());
  • 尝试分配较少的内存,以便 GC 触发的频率较低(我知道这是您首先要尝试做的)

  • 尝试只在主线程上做一些事情。当一个 Instruments 报告一个线程上的分配,而 GC 正在另一个线程上运行时,就会发生死锁。如果您只在一个线程上工作,则不会发生死锁。

  • 它通常是随机的,所以有时您可能会很幸运并且它不会死锁。 IOW 只是一次又一次地尝试。

关于ios - 跟踪 iOS 分配时,Apple Instruments 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32455689/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com