码迷,mamicode.com
首页 >  
搜索关键字:回收    ( 8645个结果
性能优化之二:结构体类型的性能优化
C#里结构体是值类型,其局部变量的空间分配在栈上。很多同学喜欢用它,是因为它的存储密度高、分配和回收成本非常低。 但是前几天在查热点的时候,却碰到结构体的性能非常慢,甚至远低于把同样数据结构做成的引用类型。下文对这个问题做了些简化,方便大家理解。 代码分析 优化前的源代码示例: //结构体声明 pu ...
分类:其他好文   时间:2020-01-26 22:33:48    阅读次数:131
智能指针
内存泄露(臭名昭著的BUG) 动态申请堆空间,用完后不归还 C++语言中没有垃圾回收机制 指针无法控制所指堆空间的生命周期 我们需要什么? 需要一个特殊的指针 指针生命周期结束时主动释放堆空间 一片堆空间最多只能由一个指针标识 杜绝指针运算和指针比较(可以避免野指针) 解决方法 指针操作符(->和* ...
分类:其他好文   时间:2020-01-26 22:18:36    阅读次数:85
Java中的引用类型
Java中引用类型 强引用 ~~~java Persnon p = new Person(); ~~~ 当Person对象不可reachable时,才被垃圾回收器回收。 软引用 ~~~java SoftReference sr = new SoftReference(new Person()); P ...
分类:编程语言   时间:2020-01-26 20:55:54    阅读次数:78
redis数据存储结构
1.redis中以key-value的形式存储,key固定是字符串,使用字符串对象进行表示,value可以是字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(ZSet)。 2.在内存中,每个Key-Value都被划分成DictEntry、RedisObject以及 ...
分类:其他好文   时间:2020-01-26 11:42:06    阅读次数:75
面向对象基础部分
一:面向对象与面向过程 都是解决问题的方式,都是代码的组织形式。 宏观上使用面向对象把握(把握复杂性),微观上使用面向过程实现(落地离不开面向过程) 二:对象是什么 数据无需管理时: 1.整个程序变量很少,无需做过多的管理(a+b=c) 2.用一个数组管理一个班的年龄 3.一个班的学生,除了年龄,还 ...
分类:其他好文   时间:2020-01-26 11:38:41    阅读次数:56
java - GC垃圾收集器详解(二)
CMS收集器 CMS收集器(ConcurrentMarkSweep:并发标记清除)是一种以获取最短回收停顿时间为目标的收集器。 适合应用在互联网站或者B/S系统的服务器上,这类应用尤其重视服务器的响应速度,希望系统停顿时间最短。 CMS非常适合堆内存大、CPU核数多的服务器端应用,也是G1出现之前大 ...
分类:编程语言   时间:2020-01-25 22:14:10    阅读次数:154
java - 各类OOM分析
StackOverflowError 比较常见的问题,虚拟机栈中栈帧过多超出栈容量,常见发生在递归方法深度过深。 OutOfMemoryError java heap space java堆内存不足以放下新生成的对象实例,1.考虑是否程序中存在内存泄露导致大量不需要的实例仍然占用内存未被回收2.当前 ...
分类:编程语言   时间:2020-01-25 16:59:50    阅读次数:75
java比c++强大之处jvm垃圾收集算法
java可以自动进行垃圾收集,c++需要手动释放内存,这个功能将程序员解放出来,能将更多的注意力放在需要实现的业务上,这也是java相对c++的一个巨大优势,jvm有哪些垃圾收集算法呢?标记清除算法:算法分为标记和清除两个阶段,首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象从图中可以看出这种算法的缺点在于,垃圾被回收以后造成了大量不连续的内存碎片。碎片太多可能会导致以后需要分配
分类:编程语言   时间:2020-01-23 11:01:41    阅读次数:85
源码学习之线程池
大家面试过程中肯定被问道过线程池。为什么要使用线程池呢?因为在系统中频繁创建线程会造成很大的CPU消耗。而且用完的线程要等待GC回收也会造成消耗。 下面我们就来学习下最常用的线程池 ThreadPoolExecutor, 首先先来看看它的构造方法: public ThreadPoolExecutor ...
分类:编程语言   时间:2020-01-23 09:31:35    阅读次数:64
在垃圾回收器中有哪几种判断是否需要被回收的几种方法
垃圾回收器在回收垃圾之前第一件事就是判断哪些是可以被回收的对象,如何判断呢?我们可以根据该对象是否还有引用指向它来进行判断,如果有则不能回收,如果没有则可以回收,具体有以下几种算法:引用计数算法:给对象添加一个引用计数器,每当它被引用一次计数器就加一,当该引用失效时就减一,如果计数器的值为0就表示它要被垃圾收集器作为垃圾收集了。这种算法存在一个问题,就是如果对象之间互相循环引用,他们就不可能被垃圾
分类:其他好文   时间:2020-01-22 18:29:40    阅读次数:115
8645条   上一页 1 ... 77 78 79 80 81 ... 865 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!