我们平时提及Minor GC、Young GC、Major GC,它们之间的关系是怎样的呢? 如下图1所示,一图胜千言,这是JDK8之前的,JDK8上没有最右边的Perm区。 图1 Minor/Young/Major GC的关系 此图来自国外的一篇博客,建议读者阅读原文,链接地址。 从图1来看Min ...
分类:
其他好文 时间:
2020-04-04 11:27:48
阅读次数:
204
Young GC的触发时机:Young GC其实一般就是在新生代的Eden区域满了之后就会触发,采用复制算法来回收新生代的垃圾。 Full GC的触发时机如下: (1)发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象总和的平均大小 ...
分类:
其他好文 时间:
2020-04-04 11:21:05
阅读次数:
746
从执行速度效率来说: String为字符串常量,一旦创建就不能修改,第一次创建一个String对象,实例化后有初始值;当第二次创建String对象后,再次赋值,表面上看是改变了第一个String对象的初始值,其实并不是,第二次创建后,第一个对象则被JVM的GC回收,因为String为常量,一旦创建则 ...
分类:
其他好文 时间:
2020-04-03 23:29:00
阅读次数:
79
Young GC的触发时机:Young GC其实一般就是在新生代的Eden区域满了之后就会触发,采用复制算法来回收新生代的垃圾。 Full GC的触发时机如下: (1)发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象总和的平均大小 ...
分类:
其他好文 时间:
2020-04-03 18:13:00
阅读次数:
441
一.Java堆从GC的角度去看,可以分为三个区域,分为是新生代,老年代,永久代(是方法区的实现,但是物理逻辑是和堆在一起的) 其中新生代占1/3的堆空间,老年代占2/3的堆空间,永久代占得很少,就不进行划分了,他也占了,但是很少很少,新生代占的1/3又分为Eden区(占比8/10),Servivor ...
分类:
其他好文 时间:
2020-04-02 15:54:22
阅读次数:
86
go的调度 与 go 的GC 调度 首先golang的goroutine占用的资源非常小,默认size是2k,goroutine调度的切换也不用到内核层去完成,代价很低,所以go可以创建成千上万个goroutine。对于操作系统而言,go程序是一个用户层程序,对goroutine是不可见的,所以go ...
分类:
其他好文 时间:
2020-04-01 22:12:46
阅读次数:
103
多线程 线程就是独立的执行路径; 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程; . main()称之为主线程,为系统的入口,用于执行整个程序; 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能认为的干预的。 对 ...
分类:
编程语言 时间:
2020-03-31 23:00:49
阅读次数:
84
时代发展到现在,如今的内存动态分配与内存回收技术已经相当成熟,一切看似进入了“自动化”时代,不免发出疑问:"为啥我们还要了解垃圾收集和内存分配?" ...
分类:
其他好文 时间:
2020-03-30 11:07:50
阅读次数:
67
专项测试测试点 响应时间 APP启动:首次安装启动,冷启动,暖启动,热启动 App互动:事件响应,内部加载速度,首屏渲染 接口性能:dns http https download json H5性能:cache 资源加载 dom page 卡顿 场景:界面加载 滑动 数据解释:人眼的感知度不能小于6 ...
分类:
移动开发 时间:
2020-03-29 19:25:37
阅读次数:
98
Python之垃圾回收机制与用户交互 垃圾回收机制 垃圾回收机制(简称GC)是Python解释器自带一种机制,专门用来回收不可用的变量值所占用的内存空间 为什么要用垃圾回收机制? 程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩 ...
分类:
编程语言 时间:
2020-03-29 01:33:34
阅读次数:
82