|
|
51CTO旗下网站
|
|
移动端

目录

《iOS和macOS性能优化:Cocoa、Cocoa Touch、Objective-C和Swift》本书作者Marcel Weiher在性能调优领域有着丰富的经验,在他的带领下,你将会了解如何提升CPU、内存、I/O、图像、Swift等方面的性能,如何在开发过程中定位到性能的瓶颈和问题,他同时还介绍了性能优化的编程技巧和最佳实践,从而帮助你写出更高效、更快速的代码。本节为目录。

作者:李俊阳 等译来源:电子工业出版社|2018-07-17 16:16

目录


1 CPU:原理  1
一个简单的例子  2
(微)基准的危险  3
更多整数求和的方式  4
Swift  5
其他语言  7
混编的力量   9
趋势   10
操作成本   12
复杂度计算  14
总结   16
2 CPU:测量和工具  17
命令行工具  18
top   18
time  19
sample  19
Xcode 测量工具  22
Instruments   23
设置和数据收集  24
性能分析选项  25
基本分析  27
源代码  29
数据挖掘I:Focus  31
数据挖掘II:Pruning  34
内部测量   35
测试   36
dtrace(dynamic tracing,动态跟踪)  37
职责之外的优化  38
总结   39
3 CPU:陷阱和优化技巧  41
数据表示   41
基本类型  42
字符串  45
对象   47
存取器  48
公共访问(Public Access)  51
对象创建和缓存  52
可变性和缓存  53
惰性求值  55
缓存注意事项  55
陷阱:通用(中级)表示  57
数组和批处理  58
字典   60
消息传递   63
IMP 缓存  65
转发   67
均匀性和优化  69
方法   70
陷阱:CoreFoundation  70
多核   71
线程(Thread)  72
工作队列  73
有节制地优化  74
4 CPU 实战:XML 解析  77
HTML 扫描器  78
将回调映射为消息  81
对象   83
对象的高效性能  85
性能评估   88
调整   91
优化整个组件:MAX  92
MAX 实现   94
总结   95
5 内存:原理  97
内存层次结构  97
Mach 虚拟内存  103
堆和栈   104
栈分配  106
使用malloc()进行堆分配  108
资源管理   111
垃圾回收  111
Foundation 对象所有权  112
跟踪垃圾回收  113
自动引用计数(Automatic Reference Counting)  114
过程式资源回收  115
总结   115
6 内存:测量与工具  117
Xcode 计量表  117
命令行工具  118
top  118
heap  120
leaks 及malloc_debug  122
代码内进行内存测量  123
内存监测工具  124
Leaks  124
Allocations  125
VM Tracker  132
计数器与性能监测事件  133
总结   134
7 内存:陷阱和优化技巧  137
引用计数   137
避免内存泄漏  139
Foundation 对象和基本类型对比  141
更小的结构  143
千禧危机  145
压缩  145
可清除内存  146
内存与并发  146
架构注意事项  147
临时分配与对象缓存  152
NSCache 与libcache  153
内存映射文件  154
madvise   157
iOS 注意事项  158
ARC 优化  158
总结   161
8 内存管理实战:FilterStream 架构  163
UNIX 管道及过滤器  163
面向对象的过滤器  165
DescriptionStream  166
消除description 中的无限递归  170
数据流层次结构  172
总结   173
9 Swift   175
Apple 所声称的Swift 性能  175
语言特性  177
基准代码  179
Swift 性能评估  180
基本性能特征  180
集合  181
更进一步   190
Nginx HTTP 解析器  190
Freddy JSON 解析器  191
图片处理  191
观察  192
编译时间   193
类型推断  193
泛型特化  195
全模块优化  197
控制编译时间  197
面向优化器编程  198
一个足够智能的编译器  199
优化编译器之死  201
实用建议  203
备用方案  204
总结   207
10 I/O:原理  209
硬件   209
硬盘驱动器  209
固态硬盘  211
网络  212
操作系统   212
抽象概念:字节流  212
文件I/O  214
网络栈  218
总结   218
11 I/O:测量与工具  221
负形空间:top 与time  222
信息概览:iostat 和netstat  223
Instruments  224
详细追踪:fs_usage  228
总结   231
12 I/O:陷阱和优化技巧  233
将字节封装为NSData  233
内存映射异常  235
如何分块  237
UNIXy I/O  238
网络I/O   240
堆叠传输  241
限制请求  243
数据处理  244
异步I/O  245
HTTP 服务  246
序列化   250
内存转储  251
一个简单的XML 格式  252
属性列表  254
归档  256
序列化总结  258
CoreData   260
批量创建和更新  261
Fetch 和Fault 技术  263
对象交互  266
子集  266
分析  267
SQLite   267
关系型和其他非数据库  269
事件发布   270
混合形式  271
隔离存储   272
总结   272
13 I/O:实战  273
iPhone 游戏字典  273
有趣的属性列表  277
二进制属性列表读取器  278
懒加载  282
避免中间代码  284
逗号分隔值  287
公共交通调度数据  289
站点信息  290
站点停靠时间检索  291
站点停靠时间导入  292
更快的CSV 解析  294
对象分配  294
Push 与Pull 的比较  296
感兴趣的键  296
并行  296
总结   299
14 图像和UI:原理  301
响应能力   301
软件和API  302
Quartz 和PostScript 图像模型  305
OpenGL   307
Metal   307
图形硬件加速  307
从Quartz 到Core Animation  311
总结   314
15 图像和UI:测量和工具  315
CPU 分析仪  315
Quartz 调试  317
Core Animation 工具  318
当CPU 不再是问题  319
我在测量什么  327
总结   329
16 图像和UI:陷阱和优化技巧  331
陷阱   331
优化技巧   332
过多通信导致安装缓慢  333
节流显示  333
使用节流显示  335
今日安装程序和进度报告  335
iPhone 无法承受之重  336
一切都是假象  338
图像的缩放和剪切  338
缩略图绘制  340
如何确定没有绘制缩略图  341
如何真的不绘制缩略图  341
如何绘制非缩略图  342
在iPhone 上绘制直线  344
总结   346
17 图像和UI:实战  347
优美的天气应用  347
更新  348
探索PNG  348
头脑风暴  350
JPEG 数据点  350
测量时的小错误  351
JPNG 与JPJP  353
优美的启动  353
Wunderlist 3  354
Wunderlist 2  354
整体架构  355
URI 与进程中REST  356
最终一致的异步数据存储  357
RESTOperation 队列  358
流畅、反应灵敏的UI  359
简评Wunderlist  361
总结   361


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

系统分析师技术指南

本书对前沿而又成熟的系统分析技术和方法进行了讨论,包括CMM与过程改进、J2EE与NET平台、中间件及相关技术、应用服务器、Web 服务、数据...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊