内存管理

关于内存管理

守給你的承諾、 提交于 2019-11-26 10:15:41
              关于内存管理 Objective-C 2.0增加了一些新的东西,包括属性和垃圾回收。那么,我们在学习Objective-C 2.0之前,最好应该先了解,从前是什么样的,为什么Objective-C 2.0要增加这些支持。 这一切都跟Cocoa内存的管理规则有关系,我们知道,Objective-C中所有变量都定义为指针。指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址,如果使用不当,就会出错或者造成内存的泄露。要了解这些,就需要看看其内存管理的规则到底是什么样的。 这篇文章也应该做为苹果开发工具中提供的性能调试工具Instruments使用前必读知识进行阅读。Cocoa China将在稍后提供Instruments工具的使用方法,以及Objective-C 2.0的详细介绍。 要知道,如果你使用Objective-C 2.0,那么本文描述的大部分工作你都不需要自己去处理了。但是这并不意味着你可以不了解它,相反,只有你对内存管理规则更加了解,你才能更好地使用Objective-C 2.0带来的便利。 当Cocoa新手在进行内存管理时,他们看上去总是把事情变得更为复杂。遵循几个简单的规则就可以把生活变得更简单。而不遵循这些规则,他们几乎一定会造成诸如内存泄露或者将消息发送给释放掉的对象而出现的的运行错误。 Cocoa不使用垃圾回收(当然

用Instruments解决内存泄露问题

一个人想着一个人 提交于 2019-11-26 10:15:28
从 Leopard开始,苹果在XCode系列开发工具中增加了一个新的功能强大的性能调试工具,叫做Instruments。Instruments是一个 非常具有新意的调试工具,如果你使用过iLife中非常简单易用的音乐创作工具GarageBand,你会发现这两者的界面非常类似。能够把开发工具的 UI做成像音乐创作软件的形式,可能也只有苹果能够想到了。 Instrument 里提供了极多的功能,可以针对程序的各个方面进行优化调试。对于初学者来说,虽然这个软件的界面极为友好,完全不同于以往的任何开发调试工具,但是如果能 够有一篇简单的教学,手把手地通过一个例子用Instruments进行调试,那么就更容易上手了。 本篇文章通过一个简单例子,带你学习如何使用Instruments工具解决应用程序中的内存泄露问题,特别适合初学者阅读。在阅读之前,如果你对Objective-C的内存管理还不是十分了解,推荐先阅读本站之前的两篇文章: Objective-C 2.0之前需要了解的:关于Obj-C内存管理的规则 和 关于Objective-C 2.0 的垃圾收集 这样可以更好地理解内存泄露是如何发生的,以及更好地通过本文了解如何快速地解决这一问题。 本文是Matt Long最新的一篇文章,原文为英文,本站已经将其翻译成中文。 原文地址: http://www.cimgf.com/2008/04

Redis 数据结构与内存管理策略(上)

混江龙づ霸主 提交于 2019-11-26 00:23:33
Redis 数据结构与内存管理策略(上) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String 、 List 、 Hash 、 Set 、 Zset 案例:沪江团购系统大促 hot-top 接口 cache 设计 Redis 内存数据结构与编码 OBJECT encoding key、 DEBUG OBJECT key 简单动态字符串(simple dynamic string) 链表(linked list) 字典(dict) 跳表(skip list) 整数集合(int set) 压缩表(zip list) Redis Object 类型与映射 Redis 内存管理策略 键 过期时间、生存时间 过期键删除策略 AOF 、 RDB 处理过期键策略 Redis LRU 算法 Redis 持久化方式 AOF (Append-only file) RDB (Redis DataBase) Redis 数据类型特点与使用场景 redis 为我们提供了 5 种数据类型,基本上我们使用频率最高的就是 string ,而对其他四种数据类型使用的频次稍弱于 string 。 一方面是由于 string 使用起来比较简单,可以方便存储复杂大对象,使用场景比较多。还有一个原因就是由于 redis

Redis 数据结构与内存管理策略(下)

半世苍凉 提交于 2019-11-26 00:23:29
Redis 数据结构与内存管理策略(下) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String 、 List 、 Hash 、 Set 、 Zset 案例:沪江团购系统大促 hot-top 接口 cache 设计 Redis 内存数据结构与编码 OBJECT encoding key、 DEBUG OBJECT key 简单动态字符串(simple dynamic string) 链表(linked list) 字典(dict) 跳表(skip list) 整数集合(int set) 压缩表(zip list) Redis Object 类型与映射 Redis 内存管理策略 键 过期时间、生存时间 过期键删除策略 AOF 、 RDB 处理过期键策略 Redis LRU 算法 Redis 持久化方式 RDB (Redis DataBase) AOF (Append-only file) 字典(dict) dict 字典是基于 hash算法 来实现,是 Hash 数据类型的底层存储数据结构。我们来看下 redis 3.0.0 版本的 dict.h 头文件定义。 typedef struct dict { dictType *type; void *privdata; dictht ht