做外贸到什么网站上发布比较好,做网站的公司那家好。,以下可以制作二维码的网站为,怎么建设ftp网站垃圾回收器
按线程数分类
串行垃圾回收器
串行回收是在同一时间段内只允许有一个CPU用于执行垃圾回收操作#xff0c;此时工作线程被暂停#xff0c;直至垃圾收集工作结束 在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合#xff0c;串行回收器的性能表…垃圾回收器
按线程数分类
串行垃圾回收器
串行回收是在同一时间段内只允许有一个CPU用于执行垃圾回收操作此时工作线程被暂停直至垃圾收集工作结束 在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的场合串行回收器的性能表现可以超过并行回收器和并发回收器。所以串行回收默认被应用在客户端的Client模式下的JVM中在并发能力比较强的CPU上并行回收器产生的停顿时间要短于串行回收器 和串行回收相反并行收集可以运用多个CPU同时执行垃圾回收因此提升了应用吞吐量不过并行回收仍然与串行一样采用独占式使用了“Stop-The-world”机制
并行垃圾回收器
按工作模式
并发式垃圾回收器 并发式垃圾回收器与应用线程交替工作以尽可能减少应用程序的停顿时间独占式垃圾回收器 独占式垃圾回收器一旦运行就停止应用程序中的所有用户线程直到垃圾回收过程完全结束
按碎片处理方式
压缩式垃圾回收器
压缩式垃圾回收器会在回收完成后对存活对象进行压缩整理消除回收后的碎片----再分配对象空间使用指针碰撞
非压缩式垃圾回收器
再分配对象使用空闲列表
按工作内存区间分
年轻代垃圾回收器老年代垃圾回收器
评估GC性能指标
- 吞吐量运行用户代码的时间占总运行时间的比例(总运行时间程序运行时间内存回收时间) - 暂停时间执行垃圾收集时程序的工作线程被暂停的时间
垃圾收集开销吞吐量的补数垃圾收集所用时间与总运行时间的比例收集频率相对于应用程序的执行收集操作发生的频率 - 内存占用Java堆区所占的内存大小快速一个对象从诞生到被回收所经历的时间 注上述加粗三项共同构成了一个“不可能三角”三者总体的表现会随着技术进步而越来越好一款优秀的收集器通常最多同时满足其中的两项这三项里暂停时间的重要性日益凸显。因为随着硬件发展内存占用多些越来越能容忍硬件性能的提升也有助于降低收集器运行时对应用程序的影响即提高了吞吐量。而内存的扩大对延迟反而带来负责效果简单说主要抓两点即吞吐量和暂停时间
吞吐量
吞吐量是CPU用于运行用户代码的时间与CPU总消耗时间的比值即吞吐量 运行用户代码时间/(运行用户代码时间 垃圾收集时间)
比如虚拟机总共运行了100分钟其中垃圾回收花掉1分钟那吞吐量99%
应用程序能容忍较高的暂停时间因此高吞吐量的应用程序有更长的时间基准快速响应是不必考虑的吞吐量优先意味着单位时间内STW的时间最短0.2 0.2 0.4
暂停时间
暂停时间是指一个时间段内应用程序线程暂停让GC线程执行的状态暂停时间优先意味着尽可能让单次STW的时间最短0.10.10.10.10.10.5
吞吐量VS暂停时间
高吞吐量较好因为应用程序的最终用户感觉只有应用程序线程在做生产性工作直觉上吞吐量越高程序运行越快低暂停时间较好因为从最终用户的角度来看不管是GC还是其他原因导致一个应用被挂起始终是不好的这取决于应用程序的类型有时候甚至短暂的200ms暂停都可能打断终端用户体验因此具有低的较在暂停时间是非常重要的特别对于一个交互式应用程序高吞吐量和低暂停时间是一对相互竞争的目标(矛盾)
如果选择以吞吐量优先那么必然需要降低内存回收的执行频率但是这样会导致GC需要更长的暂停时间来执行内存回收如果选择低延迟优先那么为了降低每次执行内存回收时的暂停时间只能频繁地执行内存回收这又引起了年轻代内存的缩减和导致程序吞吐量下降 注现在标准–在最大吞吐量优先的情况下降低停顿时间
经典垃圾收集器
串行垃圾收集器Serial、Serial Old并行垃圾收集器ParNew、Parallel Scavenge、Parallel Old并发垃圾回收器CMS、G1
查看默认的垃圾收集器
-XX:PrintCommandLineFlags查看命令行相关参数(包含使用的垃圾收集器)使用命令行指令jinfo -flag 相关垃圾回收器参数 进程ID