当前位置: 首页 > 编程日记 > 正文

xCode BuildSetting 设置

一 编译选项设置

1 Optimization Level 编译器的优化级别

编译策略是对代码编译过程的优化,优化后的代码效率比较高,但是可读性比较差,且编译时间更长。

release模式设置为Fastest, Smallest[-Os] Debug模式设置为None

设置参数
None编译器不会尝试优化代码。在开发期间,当您专注于解决逻辑错误并需要快速编译时,请使用此选项。请勿使用此选项来运送可执行文件。
Fast编译器执行简单的优化以提高代码性能,同时最小化对编译时间的影响。此选项在编译期间也使用更多内存。
Faster编译器几乎执行所有支持的优化,不需要空时权衡。编译器不使用此选项执行循环展开或函数内联。此选项会增加编译时间和生成代码的性能。
Fastest编译器执行所有优化以尝试提高生成代码的速度。当编译器执行积极的函数内联时,此选项可以增加生成代码的大小。通常不建议使用此选项。
Fastest, Smallest编译器执行通常不会增加代码大小的所有优化。这是传送代码的首选选项,因为它为您的可执行文件提供了更小的内存占用。

2 Debug Information Format

debug 模式设置为DWARF

这一项设置的是是否将调试信息加入到可执行文件中,改为DWARF后,如果程序崩溃,将无法输出崩溃位置对应的函数堆栈,但由于Debug模式下可以在XCode中查看调试信息,所以改为DWARF影响并不大。这一项更改完之后,可以大幅提升编译速度。

release 模式设置为DWARF with dSYM File

3 Build Active Architecture Only

  1. 设置为NO的时候,会编译支持的所有的版本
  2. 设置为YES的时候,是为Debug的时候速度更快,它只编译当前的architecture 版本

以上2 和 3 对会对缩短代码的编译时间。

4 Generate Debug Symbols 调试符号

和xcode 默认的一致即可

Generate Debug Symbols设置为YES时,编译产生的.o文件会大一些,当然最终生成的可执行文件也大一些。

Generate Debug Symbols设置为NO的时候,在Xcode中设置的断点不会中断。

5 Enable Bitcode

对应iOS,bitcode是可选的。
对于watchOS,bitcode是必须的。
Mac OS不支持bitcode。

LLVM是目前苹果采用的编译器工具链,Bitcode是LLVM编译器的中间代码的一种编码,LLVM的前端可以理解为C/C++/OC/Swift等编程语言,LLVM的后端可以理解为各个芯片平台上的汇编指令或者可执行机器指令数据,那么,BitCode就是位于这两者直接的中间码. LLVM的编译工作原理是前端负责把项目程序源代码翻译成Bitcode中间码,然后再根据不同目标机器芯片平台转换为相应的汇编指令以及翻译为机器码.这样设计就可以让LLVM成为了一个编译器架构,可以轻而易举的在LLVM架构之上发明新的语言(前端),以及在LLVM架构下面支持新的CPU(后端)指令输出,虽然Bitcode仅仅只是一个中间码不能在任何平台上运行,但是它可以转化为任何被支持的CPU架构,包括现在还没被发明的CPU架构,也就是说现在打开Bitcode功能提交一个App到应用商店,以后如果苹果新出了一款手机并CPU也是全新设计的,在苹果后台服务器一样可以从这个App的Bitcode开始编译转化为新CPU上的可执行程序,可供新手机用户下载运行这个App.

相关文章:

react绑定this_React绑定模式:处理“ this”的5种方法

react绑定thisJavaScript’s this keyword behavior has confused developers for ages.JavaScript的this关键字行为使开发人员困惑了很长时间。 There are at least five ways to handle the this context in React. Let’s consider the merits of each approach.在React中至…

php 文件限速下载代码

<?php include("DBDA.class.php"); $db new DBDA(); $bs $_SERVER["QUERY_STRING"]; //获取由提交界面传过来的参数 $bss substr($bs,3); //截取 后面的值$sql "select video from shangpin where id{$bss}"; //获取视频文件路径 $s…

【Java】Linux下安装配置Oracle JDK 1.7版本

1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本&#xff0c;要与Ubuntu兼容才行 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ②创建一个目录&#xff0c;…

Swift 换肤方案的实现使用SwiftTheme框架

SwiftTheme 框架进行换肤 本地创建多个plist文件 设置不同图片颜色数组 飞机票 demo Foundationimport SwiftTheme// 创建一个枚举类型进行换肤 enum ChangeTheme:Int {case theme1 0;case theme2 1;case theme3 2;// 创建一个静态方法去换肤 去加载本地的plist文件stati…

linux生日_代码简介:让我们用25个Linux事实来庆祝Linux的25岁生日。

linux生日Here are three stories we published this week that are worth your time:这是我们本周发布的三个值得您关注的故事&#xff1a; Linux is 25. Yay! Let’s celebrate with 25 stunning facts about Linux: 6 minute read Linux是25。是的&#xff01; 让我们用有关…

网页中;window.onerror=function(){return!0};

在浏览网页的时候发现一段&#xff1a;window.οnerrοrfunction(){return!0}; 于是就顺手点了搜索&#xff0c;发现是被 adsafe关闭了 。 把adsafe退出就能显示了。 转载于:https://www.cnblogs.com/Tiramisu001/p/6136931.html

xib 拖关联控件的时候报Could not insert new outlet connection错误

~/Library/Developer/XCode/DerivedData 目录中删除对应的项目文件 重新打开工程即可

hdu 4901

计数dp 做不出来真是惭愧。。。 #include <cstdio> #include <cstdlib> #include <cmath> #include <stack> #include <vector> #include <sstream> #include <cstring> #include <string> #include <map> #include <…

初创企业股权架构_初创企业如何以每月不到200美元的价格利用生产级基础架构...

初创企业股权架构Before you can launch a new service, you need infrastructure. You want reliability, scalability, and many other -ilities. But you don’t want to break the bank.在启动新服务之前&#xff0c;您需要基础架构。 您需要可靠性&#xff0c;可伸缩性和许…

git review devops过程

自己搭建的devops环境是gitlab/gerrit/jenkins 1. 首先自己checkout一个自己的代码分支&#xff0c;一般不要在master上做直接修改 2. 修改后git add file, git commit 3. git review 4. jenkins自动部署测试 5. 人工review代码&#xff0c;如果可以就提交并merge&#xff0c;…

swift判断iPhone 各种型号

// iPhoneXR let iPhoneXR:Bool __CGSizeEqualToSize(CGSize(width: 828, height: 1792), UIScreen.main.currentMode?.size ?? CGSize(width: 0, height: 0)); // iPhoneX let iPhoneX:Bool __CGSizeEqualToSize(CGSize(width: 1125, height: 2436), UIScreen.main.curr…

轻有力读后感ppt_如果您希望招聘人员认真对待您,请建立强有力的个人叙述。...

轻有力读后感pptby Garreth Dottin通过Garreth Dottin 如果您希望招聘人员认真对待您&#xff0c;请建立强有力的个人叙述。 (If you want recruiters to take you seriously, build a strong personal narrative.) We’ve all been there. Hunched over a desk. Scrolling th…

每天一个linux命令(10):cat 命令

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容&#xff0c;或者将几个文件连接起来显示&#xff0c;或者从标准输入读取内容并显示&#xff0c;它常与重定向符号配合使用。 1&#xff0e;命令格式&#xff1a; cat [选项] [文件]... 2&#xff0e;命令…

Swift 中使用Alamofire 免证书的设置

let manager SessionManager.defaultmanager.delegate.sessionDidReceiveChallenge {session,challenge inreturn (URLSession.AuthChallengeDisposition.useCredential,URLCredential(trust:challenge.protectionSpace.serverTrust!))}

“System.Data.OracleClient.OracleConnection”已过时

处理办法&#xff1a; 在oracle 安装目录下 找到 Oracle.DataAccess.dll添加引用&#xff0c;然后 using Oracle.DataAccess.Client;其他的都不用动&#xff0c;即可。连接字符串中 如有 用的是 userxxx 就改成user idxxx把原来 Using 的System.Data.OracleClient去掉即可。 --…

我开发的代码,如何申请版权_代码简介:我花了3个月时间申请开发人员职位。 这是我学到的。...

我开发的代码,如何申请版权Here are three stories we published this week that are worth your time:这是我们本周发布的三个值得您关注的故事&#xff1a; I spent 3 months applying to jobs after a coding bootcamp. Here’s what I learned: 5 minute read 编码训练营结…

Chapter 2 Open Book——29

Which left me with nothing to do but try to not look at him…unsuccessfully. 我没什么事情可以做但是我尝试不去看他&#xff0c;但是失败了。 I glanced up, and he was staring at me, that same inexplicable look of frustration in his eyes. 我瞥了一眼&#xff0c;…

js回调与异步加载的用法

以前还是菜鸟的时候&#xff08;虽然现在依然很菜 -_-|| &#xff09;对异步加载与回调函数的技术无比向往&#xff0c;但也一直没有使用过&#xff0c;这次因为页面逻辑太过复杂&#xff0c;一堆请求逻辑&#xff0c;如果还是用顺序请求&#xff0c;页面的速度。。。 领导又要…

Swift 字符串去除换行符空格符

capitalizedLetters&#xff1a;大写controlCharacters&#xff1a;控制符 whitespacesAndNewlines&#xff1a;空格换行 decimalDigits&#xff1a;小数 letters&#xff1a;文字 lowercaseLetters&#xff1a;小写字母 uppercaseLetters&#xff1a;大写字母 nonBaseCharacte…

谈论源码_6,000名自由职业者谈论金​​钱,幸福和对未来的希望

谈论源码More than 6,000 US-based freelancers responded to a new in-depth survey. I dug through the data and pulled out the most interesting insights, which paint a picture of optimistic professionals who have taken control of their own destiny.超过6,000名美…

第一篇随笔——新的开端

新的开端 这是我第一次开通博客也是第一次在博客上写随笔&#xff0c;这既是博客的新开端也是JAVA学习的新开端&#xff0c;希望能好好经营这第一个博客~。 觉得自己专业吗&#xff1f;对专业的期望 对于这个问题我不得不坦然承认虽然进入信安专业已经有一年的时间了&#xff0…

快速入门linux系统的iptables防火墙 1 本机与外界的基本通信管理

概述 iptables是一种运行在linux下的防火墙组件&#xff0c;下面的介绍可以快速的学习iptables的入门使用。 特点&#xff08;重要&#xff09; 它的工作逻辑分为 链、表、规则三层结构。数据包通过的时候&#xff0c;在对应表中&#xff0c;规则从上向下匹配&#xff0c;匹配到…

iOS 根据数组中的字典的value值进行排序

NSMutableArray *resArr [NSMutableArray array];// 先把所有值的装进一个数组中NSMutableArray *valArr [NSMutableArray array];for (int i 0; i < arr.count; i ) {NSDictionary *dic arr[i];NSString * str [NSString stringWithFormat:"%-%d",dic["…

矢量数编码有哪几种类型_6种最理想的编码工作(以及吸引每个人的类型)

矢量数编码有哪几种类型by David Venturi大卫文图里(David Venturi) 6种最理想的编码工作(以及吸引每个人的类型) (The 6 most desirable coding jobs (and the types of people drawn to each)) Free Code Camp问了15,000个人&#xff0c;他们是谁&#xff0c;以及他们如何学…

sleep和wait到底什么区别

wait是在当前线程持有wait对象锁的情况下&#xff0c;暂时放弃锁&#xff0c;并让出CPU资源&#xff0c;并积极等待其它线程调用同一对象的notify或者notifyAll方法。注意&#xff0c;即使只有一个线程在等待&#xff0c;并且有其它线程调用了notify或者notifyAll方法&#xff…

Swift Code Snippet

1 swi_crecell func numberOfSections(in tableView: UITableView) -> Int {return 1;}func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {return 5;}// cell高度func tableView(_ tableView: UITableView, heightForRowAt indexPa…

Cocos2d-x lua 编译到Android设备

需要完成Android下ant,ndk,sdk(adt)的环境配置.Java环境配置. 也可以搭建VS下的Lua开发环境. 首先新建项目 cocos new -l lua -d (...address) 然后编译 cocos run -p win32 -s (...address) --ap 19 后面的--ap 19是版本控制. 然后在Eclipse中Import项目,右键项目Build Path添…

c# 数据可视化_#OpenVisConf上的22位数据可视化从业者的10点收获

c# 数据可视化by Siena Duplan通过锡耶纳杜普兰(Siena Duplan) #OpenVisConf上的22位数据可视化从业者的10点收获 (10 Takeaways from 22 Data Visualization Practitioners at #OpenVisConf) Update | May 13, 2016: Videos of all talks are officially live!更新| 2016年5月…

CentOS中Mysql常用操作

安装mysqlyum -y install mysql-server 修改mysql配置vi /etc/my.cnf 这里会有很多需要注意的配置项,后面会有专门的笔记暂时修改一下编码(添加在密码下方): default-character-set utf8设置mysql随系统启动# chkconfig mysqld on ← 设置MySQL服务随系统启动自启动# chkcon…

RXSwift基本使用1

1 cocoapod 安装 import RxSwift import RxCocoa 2 给一个按钮添加点击事件 // 添加点击事件self.rightBtn.rx.tap.subscribe { (event) in}