容易被人忽略的 NSCache

第一次见到NSCache,是在SDWebImage中。SDWebImage的内存缓存机制就是通过NSCache完成的。所以可能你不太了解这个类,但是其实一直在使用它。 为什么要使用NSCache? 我们通常用缓存来临时存储短时间使用但创建昂贵的对象。重用这些对象可以优化性能,因为它们的值不需要重新计算。另外一方面,这些对象对于程序来说不是紧要的,在内存紧张时会被丢弃。如果对象被丢弃了,则下次使用时需要重新计算。 NSCache是一个可变的集合,主要用来存储key-value对。它有着和NSMutableDictionary类似的API。实际上,NSCache就像是一个会自动移除对象来释放内存的NSMutableDictionary。 ( i d o o o o ) i i i i o d d d d b ) ) ) ) j s s r r e e e e e c t t m m t O O o o F b b v v o j j e e r e e O A K c c b l e t t j l y : : e O : ( ( c b ( i i t j i d d F e d ) ) o c ) o o r t k b b K s e j j e y y f f : o o ( r r i K K d e e ) y y k : : e ( ( y i i d d ) ) k k e e y y c o s t : ( N S U I n t e g e r ) n u m NSCahce与可变集合不同之处: ...

2019-11-11 · 2 min · 231 words · CubeGao

安装 frida 遇到的一些问题

开始安装frida 首先需要安装python,Mac已经自带python2.7,frida作者是推荐安装python3.x。python2.x同样也能安装成功。 $ s u d o p i p i n s t a l l f r i d a 如果报错: D E P R E C A T I O N : U n i n s t a l l i n g a d i s t u t i l s i n s t a l l e d p r o j e c t ( s i x ) h a s b e e n d e p r e c a t e d a n d w i l l b e r e m o v e d i n a f u t u r e v e r s i o n . T h i s i s d u e t o t h e f a c t t h a t u n i n s t a l l i n g a d i s t u t i l s p r o j e c t w i l l o n l y p a r t i a l l y u n i n s t a l l t h e p r o j e c t . 安装命令修改成 ...

2019-10-09 · 3 min · 590 words · CubeGao

在 Centos7.2 上安装编译 Swift

由于想用Swift写服务玩玩,准备在Centos7.2上部署一个Swift环境,能跑一下Perfect。 由于Docker的种种好处,当然是选择它来部署Swift环境。 安装Docker 更新yum包到最新。如果是生产机器务必慎重更新内核,避免出现不必要的问题。 1[root@fadaixiaohai ~]# yum update 执行 Docker 安装脚本。 1[root@fadaixiaohai ~]# curl -fsSL https://get.docker.com/ | sh 启动 Docker 进程。 1[root@fadaixiaohai ~]# service docker start 验证 docker 是否安装成功并在容器中执行一个测试的镜像。 1[root@fadaixiaohai ~]# docker run hello-world 2Hello from Docker! 大概两三分钟就安装好了,国内的服务器可能要用镜像加速会好点。 安装Swift 拉取Swift的镜像到本地。 1[root@fadaixiaohai ~]# docker pull swift 镜像拉取成功后就可以使用docker images列出当前我们拉取到本地的所有镜像: 1[root@fadaixiaohai ~]# docker images 2REPOSITORY TAG IMAGE ID CREATED SIZE 3swift latest 934835f58041 3 weeks ago 1.3GB 4hello-world latest f2a91732366c 4 months ago 1.85kB 我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。 ...

2018-03-30 · 2 min · 265 words · CubeGao