我喜欢 Apple 和他们所做的事情,但是 Swift...OH GOD!
配置:
编译时间: 3 分钟
看起来像“new best and amazing swift, the dream” 这个配置是不够的,它像 Google Chrome - InfiniteLoop(find free memory - 吃)
HEADERMAP_USES_VFS 设置为 YES(无变化)Build Settings/Architectures/Build Active Architecture Only
YES(一些改进)设置 默认写入 com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4 (8)
(有时会变得更糟)
将优化级别设置为-Onone(无重大改进)
DWARF 而不是 DWARF with dSYM FileFind implicit dependencies(没有主要
改进)创建了一个新项目并将所有文件移动到新项目中(花费的时间太长,改进的时间很少)
将编译器从默认更改为其他可用的(甚至更糟)
关于如何编写快速编译的 Swift 代码的严格规则(更多细节见下文)
我发现一些帖子中人们描述了相同的问题:here 和 here
我想每个人都在等待新的 Xcode 8.2 beta 2 其中:
Xcode will not rebuild an entire target when only small changes have occurred. (28892475)
但这只是部分正确,我的编译时间仍然很长——从 6-12 分钟变成了 3-8 分钟。这个的详细说明可以看here和here
此外,我在编写代码时遵循了所有这些规则:
换句话说,不要使用任何“很酷的新功能”,因为你会等很久。
再试一次 - here 中描述了一种解决方法:
Go to Product -> Scheme -> Edit Scheme. Select Build in left side column and uncheck "Find implicit dependencies" But this flag should remain checked when you are building the project for the first time.
但是,这个解决方法不是我要找的,这也可以作为一个临时解决方案。
Swift 很痛苦,不是因为它很难写,而是因为它很难用(至少在某些机器上是这样)。
为了比较:我有一个关于 Objective-C 的项目,它有 2k 个类和 11 个 pod - 干净的编译时间约为 30 秒。
我还发现了很多关于 swift 性能的公开错误:
我的问题是:
最佳答案
这个问题也让我非常沮丧。我们已经尝试了您提到的几种解决方案,但都没有奏效。
在编译时间上做出显着改进的一件事是:
在 Other Swift Flags 中添加 -Onone 的同时开启 Whole Module Optimization。
看到这个 - Speed Up Swift Compilation
我正在使用 Swift 3 和 Xcode 8.3。
关于ios - 极长的 Swift 编译时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41585270/
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
这里有一个很好的答案解释了如何在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返回它复制的字节数,但是当我还没有下
这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
我不知道为什么,但是当我设置这个设置时它无法编译设置:static_cache_control,[:public,:max_age=>300]这是我得到的syntaxerror,unexpectedtASSOC,expecting']'(SyntaxError)set:static_cache_control,[:public,:max_age=>300]^我只想将“过期”header设置为css、javaascript和图像文件。谢谢。 最佳答案 我猜您使用的是Ruby1.8.7。Sinatra文档中显示的语法似乎是在Ruby1.
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实