Xcode 9.3游乐场 - 诊断

Ber*_*y86 24 xcode

我注意到每次在Xcode(版本9.3)中启动Playground时,守护进程都会在后台启动并使用100%以上的CPU!

我删除了Xcode的缓存及其DerivedData文件夹但没有变化.

有谁知道如何解决这个问题?

Yoh*_*hst 13

diagnosticd是一个需要使用launchctl停止/终止的守护进程.您最有可能需要停止的守护进程名称中包含"SimDevice".要获得确切的名称:

/bin/launchctl list | grep SimDevice
Run Code Online (Sandbox Code Playgroud)

然后使用适当的名称(可能超过1)执行:

/bin/launchctl stop 'name'
Run Code Online (Sandbox Code Playgroud)

在我的情况下,'name'是: com.apple.CoreSimulator.SimDevice.380EFF06-B636-49CD-851E-5DB4890641AE

如果您经常使用Playground并且通常有超过1个模拟器吃CPU,请运行此脚本:

/bin/launchctl list | grep SimDevice | awk '{print $3}' | xargs -I %s /bin/launchctl stop %s
Run Code Online (Sandbox Code Playgroud)

哦,别忘了在这里向苹果提交一份错误报告:https://bugreport.apple.com/web/

顺便说一句,看到操场/诊断与你的代码斗争有点乐趣; 如果你创建一个bug或其他一些精心设计的语法,cpu就会上升.如果你清除它,cpu会下降(只是一点点).苹果如何实现这一点几乎是热闹的......

  • 杀死后,它会在一段时间后自动重新启动而不做任何事情.还是不行. (2认同)

Ger*_*eon 10

作为临时解决方法,我在启动游乐场后运行此脚本以杀死流氓诊断和归属进程:

#!/bin/bash
kill $(ps -ef | grep Xcode.app | egrep "diagnosticd|homed" | awk '{ print $2 }')
Run Code Online (Sandbox Code Playgroud)

编辑:这似乎只是iOS游乐场的一个问题,所以另一个(不那么激烈)的解决方法是使用macOS游乐场来处理那些不需要UIKit组件的情况.

第二次编辑:此错误似乎在Xcode 9.3.1中修复(可通过MAS获得或从developer.apple.com直接下载)

第三编辑:9.3.1并没有完全解决这个问题,尽管发行说明说的是什么.根据我的错误报告中的评论,这只能在9.4中完全修复.


mat*_*att 2

这是一个已知错误,Apple 将其归因于 MediaRemote 子系统 \xe2\x80\x9d 的 \xe2\x80\x9cover-热情日志记录。目前没有官方解决方法。

\n\n

请参阅https://forums.developer.apple.com/message/305885

\n