这不是测试版问题。我正在使用 Xcode 6.0.1,生产版本。我遇到的问题是,当我尝试构建或运行我正在处理的代码时,Xcode 在很长一段时间内变得无响应,并且 SourceKitService 消耗了 400% 以上的 CPU(根据 Activity Monitor)。这个问题是最近几天的新问题,但奇怪的是,自从 Xcode 6.0 于 9 月 17 日正式发布以来,我一直在使用它。我升级到 6.0.1,希望它能修复这个问题。
知道问题出在哪里吗?
最佳答案
今天下午早些时候在 Xcode 6.1.1(不是测试版,正式发布的版本)中遇到了这个问题。我一直在 Playground 上运行一些代码,并怀疑这是原因。 CPU 使用率接近 100%,Xcode 无法完成构建。
所以这就是我所做的:
1. 打开“Activity Monitor”,它显示 SourceKitService 是主要的 CPU hog。
2. 在“事件监视器”中,双击 SourceKitService 并单击“打开文件和端口”部分,这表明它正在处理/Users/myname/Library/Developer/Xcode/DerivedData/ModuleCache/目录下的文件对于特定文件夹。
3. 删除了指定的文件夹(从命令行,使用 rm -rf)。缓 stub 据Can I safely delete contents of Xcode Derived data folder?重新生成.
4.再次使用Activity Monitor,Force-Quit SourceKitServer。在 Xcode 中看到现在非常熟悉的标志,表明 SourceKitService 已崩溃(这就是为什么 SourceKitService 听起来很熟悉!)。
5. 重复第3步。
Mac 又是和平的。没有数据丢失,甚至不必重新启动 Xcode(我曾尝试过但未成功)。底线是 ModuleCache 似乎在循环中获取 SourceKitService 并且删除文件夹似乎可以修复它。希望这对你也有用。
引导说明:
顺便说一下,SourceKitService 问题的原因是我的 Swift 类中的数组声明太长。我在一个数组中有 200 多个条目。将其减少到 30,错误消失了。所以这个问题可能是由于苹果代码中的某种堆栈溢出(双关语)引起的。
关于ios - SourceKitService 消耗 CPU 并导致 Xcode 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26151954/
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我目前正在用Ruby编写一个项目,它使用ActiveRecordgem进行数据库交互,我正在尝试使用ActiveRecord::Base.logger记录所有数据库事件具有以下代码的属性ActiveRecord::Base.logger=Logger.new(File.open('logs/database.log','a'))这适用于迁移等(出于某种原因似乎需要启用日志记录,因为它在禁用时会出现NilClass错误)但是当我尝试运行包含调用ActiveRecord对象的线程守护程序的项目时脚本失败并出现以下错误/System/Library/Frameworks/Ruby.frame
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是
我正在使用rubydaemongem。想知道如何向停止操作添加一些额外的步骤?希望我能检测到停止被调用,并向其添加一些额外的代码。任何人都知道我如何才能做到这一点? 最佳答案 查看守护程序gem代码,它似乎没有用于此目的的明显扩展点。但是,我想知道(在守护进程中)您是否可以捕获守护进程在发生“停止”时发送的KILL/TERM信号...?trap("TERM")do#executeyourextracodehereend或者你可以安装一个at_exit钩子(Hook):-at_exitdo#executeyourextracodehe
下面的代码工作正常:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson)do|key,oldv,newv|ifkey==:aoldvelsifkey==:bnewvelsekeyendendputskerson.inspect但是如果我在“ifblock”中添加return,我会得到一个错误:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson
我有一个ruby脚本可以打开与Apple推送服务器的连接并发送所有待处理的通知。我看不出任何原因,但当Apple断开我的脚本时,我遇到了管道损坏错误。我已经编写了我的脚本来适应这种情况,但我宁愿只是找出它发生的原因,这样我就可以在第一时间避免它。它不会始终根据特定通知断开连接。它不会以特定的字节传输大小断开连接。一切似乎都是零星的。您可以在单个连接上发送的数据传输或有效负载计数是否有某些限制?看到人们的解决方案始终保持一个连接打开,我认为这不是问题所在。我看到连接在3次通知后断开,我看到它在14次通知后断开。我从未见过它能超过14点。有没有人遇到过这种类型的问题?如何处理?