1. 栈 是用来存储函数内部临时使用的变量(局部变量),以及函数调用时所使用的参数的内存区域; 堆 是用来存储程序运行时的任意数据和对象的内存领域。 2. 栈和堆的相似之处在于,它们的内存空间都是在程序运行时得到申请分配的。不过,在内存的使用方法上,二者存在些许不同。栈中对数据进行存储和舍弃(清理处 ...
分类:
其他好文 时间:
2019-01-17 21:10:47
阅读次数:
189
先从操作系统角度讲:操作系统掌握所有的硬件内存,因为内存很大,所以操作系统把内存分成一个一个的页面(其实就是一个块,一般是4KB) ,然后以页面为单位来管理,页面内用更细小的方式来以字节为单位管理。操作系统内存管理的原理非常麻烦、非常复杂、非常不人性化。那么对我们这些使用操作系统的人来说,其实不需要 ...
分类:
其他好文 时间:
2019-01-12 18:59:24
阅读次数:
151
9.动态内存分配 new 类型名T(初值列表) 其功能是在程序执行期间申请用于存放T类型对象的内存空间,并依初值列表赋以初值,结果值:成功则T类型的指针,指向新分配的内存;失败则为0(null)。若要释放内存,则用delete *p;释放指针p指向的内存,P必须是new操作的返回值。 //动态分配 ...
分类:
编程语言 时间:
2019-01-08 15:05:22
阅读次数:
135
1.算法功能简介 热力图,也就热图或者热点图,它能以特殊高亮的的形式显示某一区域的等级的优越性、重要性或者某一区域类别的密度和变换趋势;例如百度地图热力图 是用不同颜色的区块叠加在地图上实时描述人群分布、密度和变化趋势的一个产品,是基于百度大数据的一个便民出行服务。 上图主要显示一个城市的某个地方人 ...
分类:
其他好文 时间:
2018-12-20 19:00:56
阅读次数:
189
Visual Studio调试时,出现“触发一个断点”内存释放出现异常 数组和对应指针的NULL初始化 数组使用之前要先对其初始化 对应指针进行动态初始化 分配内存后,需要对内存进行释放,程序对内存进行释放后,并不会将其置为NULL,必须手动将指针置为NULL,防止访问野指针或再次释放出错。 释放内 ...
分类:
编程语言 时间:
2018-12-20 16:59:00
阅读次数:
164
一、为什么使用智能指针?智能指针的原理? C/C++中的堆内存分配和释放的方式主要是: malloc/free 以及 new/delete 等。 使用new 和delete 管理内存存在三个常见问题: 1.忘记delete(释放) 内存,或者异常导致程序过早退出,没有执行 delete。忘记释放动态 ...
分类:
编程语言 时间:
2018-12-18 18:00:23
阅读次数:
300
答: step 1: 以最高权限同步所有的缓存到磁盘中 sync sync step2: 执行以下命令指示内核对内存进行调整 echo 3 > /proc/sys/vm/drop_caches 解析:3表示清空所有缓存(pagecache、dentries 和 inodes) 2表示清空 dentr ...
分类:
系统相关 时间:
2018-12-15 19:46:59
阅读次数:
198
1、OC关键字 synthesize 关键字: 根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量 。 @implementation 关键字: 表明类的实现 @end 结束 self 关键字 : 类似于java中的this,是隐藏参数,指向当前调 ...
分类:
其他好文 时间:
2018-12-15 00:14:15
阅读次数:
146
今天自己在总结map的时候,想到了在释放Map对象空间的时候就有使用过将Map对象置null,也有时候会调用clear()将Map中的数据清除,那么它们都有什么区别呢? 今天自己在总结map的时候,想到了在释放Map对象空间的时候就有使用过将Map对象置null,也有时候会调用clear()将Map ...
分类:
编程语言 时间:
2018-12-12 11:47:14
阅读次数:
578
一、内存的碎片化 如果用c语言直接 malloc,free 来向操作系统申请和释放内存时,在不断的申请和释放过程中,形成了一些很小的内存片断,无法再利用,这种空闲,但无法利用内存的现象称为内存的碎片化。 二、slab allocator 缓解内存碎片化 memcached 用 slab alloca ...
分类:
系统相关 时间:
2018-12-12 00:38:17
阅读次数:
254