1. 用到的软硬件
- Macbook Air
- macOS Mojave 10.14.6
- Xcode 11.3.1
- iPhone8手机一枚
- Object-C(编程语言)
2. 创建我们的项目工程
1.png在我们的ViewController.m中键入如下代码
2.png
插入我们的苹果手机进行调试(我在虚拟机上也做过测试,发现虚拟机没有寄存器,所以难以调试),在我们的int a = 10处,打上一个断点,然后进行汇编调试设置
3.png
随后点击运行
3.png回到看我们的汇编会根据代码一行行的进行相应操作。
这个时候我们把调试debug的方式改为fastest,smallest(fastest,smallesta 这个方式一般为rerelease的编译方式)
4.png
如图,就是将这里的Debug改为和下方Rlease一样的方式,然后在运行(这里修改之后需要将原来的手机里面的app删掉在重新运行)
5.png
会发现这里的汇编少了一大长串,并且没有了之前的步骤,直接给除了30的答案。
3. 总结
看来需要对汇编进行一些研究方可更加清晰理解这个编译过程。我也产生了一个疑问,这个Release的fastest模式真的就比Debug来的快吗?
网友评论