• iOS和macOS性能优化:Cocoa、Cocoa Touch、Objective-C和Swift
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

iOS和macOS性能优化:Cocoa、Cocoa Touch、Objective-C和Swift

18.62 1.9折 99 九品

仅1件

北京东城
认证卖家担保交易快速发货售后保障

作者[德]Marcel Weiher(马塞尔·韦伊尔) 著;李俊阳 马超 程伟 孙莹 译

出版社电子工业出版社

出版时间2018-07

版次1

装帧平装

货号A5

上书时间2024-12-24

图书-天下的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 [德]Marcel Weiher(马塞尔·韦伊尔) 著;李俊阳 马超 程伟 孙莹 译
  • 出版社 电子工业出版社
  • 出版时间 2018-07
  • 版次 1
  • ISBN 9787121338144
  • 定价 99.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 368页
  • 字数 442千字
  • 正文语种 简体中文
【内容简介】

随着应用功能的日益增加,性能问题也逐渐浮出水面,进入我们的视野之中。本书作者Marcel Weiher在性能调优领域有着丰富的经验,在他的带领下,你将会了解如何提升CPU、内存、I/O、图像、Swift等方面的性能,如何在开发过程中定位到性能的瓶颈和问题,他同时还介绍了性能优化的编程技巧和*佳实践,从而帮助你写出更高效、更快速的代码。此外,你还将学习到定位性能问题的工具使用方法以及*佳实践,并跟随示例来学习性能优化。本书适合寻求进阶及所有对性能优化感兴趣的iOS 开发人员阅读。

【作者简介】

Marcel Weiher是一位在Cocoa技术方向上有超过25年经验的软件工程师和研究员。Marcel的工作一直聚焦在性能优化上,包括在BBC解决不可能的预压榨问题,和在Apple的Mac OS X 性能团队帮助其他Apple工程师提升代码的性能。除了帮助知名公司和新兴公司创建了成功的软件,帮助开发团队,Marcel也会做培训课程,分享博客,在会议上做演讲,贡献开源项目,并开发像Higher Order Messageing这样的新技术。他也致力于开发语言的研究,从1987年开始做Objective-C的实践,最后研究了Objective-Smalltalk。Marcel目前是柏林Microsoft的首席软件工程师,维护已有的软件,并为公司提供咨询顾问。

 


 


 

李俊阳(星夜暮晨),Realm 中文翻译,SwiftGG 翻译组核心成员,《Xcode 江湖录》作者之一。沉迷 Swift,自 Swift 发布以来一直在探索和学习 Swift 的开发和使用;热爱开源,多次向 Swift、Realm Cocoa 开源库贡献代码;喜欢独辟蹊径,目前在 App Store 上架了专门为彝族同胞开发的「彝文输入法」,希望通过自己的努力让所有人都能享受科技带来的便利。

 


 

马超,iOS 开发工程师,目前就职于某金融公司手机炒股部门,SwiftGG 翻译组核心成员。自 Apple 推出 Swift 语言之后开始学习并应用到 iOS 项目开发中,已上架多款应用到 App Store,目前专注于 Server-Side Swift 的开发,正在构思实现一个底层开源库;业余时间喜欢逛技术博客,翻译外文以及和技术大牛交流学习。新浪微博@Ninth_Day。

 


 

程伟,SwiftGG 翻译组核心成员,曾做过路由器、防火墙等安全硬件产品的 firmware 研发工作,对 iOS 开发也颇有研究,自 Swift 发布以来一直关注着它的发展,并保持有对新技术的热忱。目前就职于某国企负责项目管理工作,业余时间喜欢看书、跑步、烧菜,研究大前端技术栈,希望能通过自己的努力为国内的技术发展添砖加瓦。

【目录】

目录

 

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

点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP