首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
RoyCao
掘友等级
iOS开发
|
Bytedance
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
564
文章 561
沸点 3
赞
564
返回
|
搜索文章
最新
热门
Swift编译器中间码SIL类型系统
这篇文章为个人对How to talk to your kids about SIL type use的翻译,其中夹带私活,阅读需谨慎。 SIL可以分为两大类型,object(对象)类型 和 address(地址)类型。object类型包括整数,对class实例的引用,stru…
SIL optimizer - string append 优化
当表达式 x.append(y) 的x是空的时候,用表达式x = y代替它。 移除x.append("")。 当表达式x.append(y)的 x 和 y都是常亮字符串时,用表达式 x = x + y代替 。 如果T是静态已知的,则用常量字符串替换_typeName(T.sel…
Swift编译器中间码SIL
上图是传统的基于LLVM的编译器流程,比如C、C++以及Objective-C。代码分析主要是基于CFG(AST级别),CFG全称Control Flow Graph(函数流程控制图),是在clang这一层,但是这有很多缺点。 Swift作为一种高级语言,有些高级特性,比如基于…
【译】你可能不知道的iOS性能优化建议(来自前Apple工程师)
作为开发人员,良好的性能对于使我们的用户感到惊喜和喜悦是无价的。iOS用户具有很高的标准,如果你的应用程序反应很慢或在内存压力下崩溃,他们将停止使用它,或者更糟糕的是,你的评论会很糟糕。 在过去的6年中,我在Apple从事Cocoa框架和第一方应用程序的开发工作。我从事Spot…
Pecker:自动检测项目中不用的代码
先放上项目的地址Pecker,觉得不错的不妨点点Star。 最近在折腾编译相关的,然后就想能不能写一个检测项目中不用代码的工具,毕竟这也是比较常见的需求,但这并不容易。想了两天并没有太好的思路,因为Swift的语法是很复杂的,包括Protocol和范型,如果自己Parse源代码…
基于SwiftSyntax写一个命令行工具检测Xcode项目中不用的图片资源
其实已经有一个不错的用Swift写的命令行工具检测不用的图片资源了,就是喵神的FengNiao,至于为什么要再写一个呢,主要是为了学习SwiftSyntax,前段时间我写了篇文章简单的介绍了SwiftSyntax,文章在这里SwiftSyntax详解,对SwiftSyntax不…
SwiftSyntax详解
SwiftSyntax是基于libSyntax构建的Swift库,利用它可以分析,生成和转换Swift代码。现在已经有一些基于它开源的库,比如SwiftRewriter针对代码进行自动格式化(其中包括基于代码规范进行简单的代码优化)。 第一步,词法分析,也叫做扫描scanner…
iOS卡顿监测方案总结
最近在写APM相关的东西,所以整理了一下iOS中卡顿监测的那些方案,不了解卡顿的原理的可以看这篇文章iOS 保持界面流畅的技巧,写的很好。 FPS (Frames Per Second) 是图像领域中的定义,表示每秒渲染帧数,通常用于衡量画面的流畅度,每秒帧数越多,则表示画面越…
iOS获取任意线程调用栈
ARM有15种通用寄存器,但是其实有些通用寄存器是有特殊用途的,PCS(Procedure Call Standard for Arm architecture)就定义了过程调用中,寄存器的特殊用途。 r15:PC The Program Counter,也称作程序计数器PC,…
通过Signal handling(信号处理)获取任意线程调用栈
获取任意线程调用栈目前有两种方式。第一方式拿到栈的指针(StackPointer)以及栈帧指针(FramePointer),递归到栈底。 这种方式是KSCrash的作者想到的,他曾提过一个问题Printing a stack trace from another thread,…
下一页
个人成就
文章被点赞
412
文章被阅读
111,632
掘力值
2,633
关注了
45
关注者
650
收藏集
0
关注标签
1
加入于
2018-07-30