一、垃圾收集器的分类 1、次收集器 Scavenge GC,指发生在新生代的GC,因为新生代的Java对象大多都是朝生夕死,所以Scavenge GC非常频繁,一般回收速度也比较快。当Eden空间不足以为对象分配内存时,会触发Scavenge GC。 一般情况下,当新对象生成,并且在Eden申请空间 ...
                            
                            
                                分类:
编程语言   时间:
2019-03-13 18:16:25   
                                阅读次数:
270
                             
                    
                        
                            
                            
                                    JVM内存模型 java虚拟机在执行java程序的过程中会把它所管理的内存划分为不同的若干个不同的的数据区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机的进程的启动而存在,有些区域依赖用户线程的启动和结束而创建和销毁,java虚拟机所管理的内存将会包括以下几个运行时数据区域 J ...
                            
                            
                                分类:
其他好文   时间:
2019-02-13 20:56:53   
                                阅读次数:
201
                             
                    
                        
                            
                            
                                    垃圾收集算法 Mark Sweep(标记 清除算法) 标记清除算法分为两个阶段,标记阶段和清除阶段。标记阶段任务是标记出所有需要回收的对象,清除阶段就是清除被标记对象的空间。 优缺点:实现简单,容易产生内存碎片。因为会存在大量的空间碎片,因为回收后的空间是不连续的,这样给大对象分配内存的时候可能会提 ...
                            
                            
                                分类:
编程语言   时间:
2019-02-10 12:21:38   
                                阅读次数:
214
                             
                    
                        
                            
                            
                                    对于redis安装的这个错误,我在博客 "redis 安装 与错误解决办法" 最后有提及, 但是网上大部分文章的对这个问题的解答都是有误的。 所以在这里单列出来。 错误内容: jemalloc/jemalloc.h: No such file or directory。 文档 针对这个错误,我们可以 ...
                            
                            
                                分类:
其他好文   时间:
2019-01-31 16:48:00   
                                阅读次数:
162
                             
                    
                        
                            
                            
                                    1.What a) mysql等一些常见的关系型数据库的数据都存储在磁盘当中,在高并发场景下,业务应用对mysql产生的增删改查操作造成巨大的I/O开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类问题,缓存数据的概念应运而生。 b) 极大地解决数据库服务器的压力 c) 提高应用 ...
                            
                            
                                分类:
数据库   时间:
2019-01-21 23:52:01   
                                阅读次数:
310
                             
                    
                        
                            
                            
                                    条目十一《理解自定义分配子的合理用法》 根据大牛们的测试: STL默认的内存管理器(allocator)太慢,或者浪费内存,或者在使用的时候会产生内存碎片。 又或者需求不一样时: 1.allocator是多线程安全的,而你运行环境是单线程,所以想减少线程同步带来的te不必要开销。 2.当想把容器的对 ...
                            
                            
                                分类:
其他好文   时间:
2019-01-12 01:03:20   
                                阅读次数:
139
                             
                    
                        
                            
                            
                                JVM垃圾回收算法解析标记-清除算法该算法为最基础的算法。它分为标记和清除两个阶段,首先标记出需要回收的对象,在标记结束后,统一回收。该算法存在两个问题:一是效率问题,标记和清除过程效率都不太高,二是空间问题,在执行一次清除操作后,会存在好多不连续的内存碎片,从而造成资源的浪费。空间碎片太多将会导致,当在程序运行过程中,需要分配较大对象的时候无法找到足够的连续内存将会导致下一次垃圾收集操作。复制算
                            
                            
                                分类:
编程语言   时间:
2019-01-08 10:55:22   
                                阅读次数:
178
                             
                    
                        
                            
                            
                                    在网上看到两篇不错的文章,由于博主原创,这里只贴地址,希望能帮助大家! https://blog.csdn.net/java2000_wl/article/details/8030172 https://www.cnblogs.com/redcreen/archive/2011/05/04/2037 ...
                            
                            
                                分类:
编程语言   时间:
2019-01-07 21:08:14   
                                阅读次数:
273
                             
                    
                        
                            
                            
                                    1 前景提要 1.1 碎片化问题 分页与分段 页是信息的物理单位, 分页是为了实现非连续分配, 以便解决内存碎片问题, 或者说分页是由于系统管理的需要. 段是信息的逻辑单位,它含有一组意义相对完整的信息, 分段的目的是为了更好地实现共享, 满足用户的需要. 页的大小固定且由系统确定, 将逻辑地址划分 ...
                            
                            
                                分类:
系统相关   时间:
2018-12-22 16:31:19   
                                阅读次数:
259
                             
                    
                        
                            
                            
                                虚拟机遇到new指令时: 首先检查方法区中是否加载了类信息,如果没有加载,则先加载类信息 类加载后,为对象分配内存,大小在加载类信息时确定 如果对内存是规整的,即垃圾回收后整理内存碎片合并成一块未使用的区域则分配内存就是将记录内存位置的指针移动相应大小的一段距离(指针碰撞) 如果内存不规整,即垃圾回 ...
                            
                            
                                分类:
其他好文   时间:
2018-12-18 02:08:11   
                                阅读次数:
244