先看一眼JVM虚拟机运行时的内存模型: 1.方法区 Perm(永久代、非堆) 2.虚拟机栈 3.本地方法栈 (Native方法) 4.堆 5.程序计数器 1 首先的问题是:jvm如何知道那些对象需要回收 ? 目前两种标识算法、三种回收算法、两种清除算法、三种收集器 引用计数法 每个对象上都有一个引用 ...
分类:
其他好文 时间:
2018-06-02 13:29:41
阅读次数:
168
对象的自动回收: 无用对象 离开了作用域的对象; 无引用指向对象; Java运行时系统通过垃圾收集器周期性的释放无用对象所使用的内存。 Java运行时系统会在对对象进行自动垃圾回收前,自动调用对象的finalize()方法。 垃圾收集器: 自动扫面对象的动态内存区,对不再使用的对象做上标记以进行垃圾 ...
分类:
编程语言 时间:
2018-05-31 00:38:24
阅读次数:
221
程序运行时配置如下参数: 最终,程序输出: GC日志分析: 1、最前面的数字 "0,070" 代表了GC发生的时间,这个数字的含义是从Java虚拟机启动以来经过的秒数 2、GC日志开头的“[GC 和 [Full GC” 说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是年老代GC的。 3、P ...
分类:
其他好文 时间:
2018-05-30 21:13:26
阅读次数:
163
一、logstash浅析logstash就是一个过滤器,收集器。他是一个重量级的日志收集工具。使用logstash会消耗大量的服务器资源,所以通常需求高一点的配置。过滤器:它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。收集器:它可以采集指定地址的日志,并传输到elasticsearch、redis等目的地。二、logstash的处理展示:三、插件input(输入插件):日志
分类:
其他好文 时间:
2018-05-29 22:47:47
阅读次数:
131
首先要明白一点:JVM本身是一个多线程的程序,和我们编写的java应用程序一样,当JVM启动执行时就是在操作系统中启动了一个JVM进程。我们编写的java单线程或多线程应用程 序都是在JVM这个程序中作为一个或多个线程运行。 每当使用java命令执行一个带main方法的类时,就会启动JVM(应用程序 ...
分类:
系统相关 时间:
2018-05-26 20:23:50
阅读次数:
241
用C或C ++扩展 如果你知道如何用C语言编程,那么为Python添加新的内置模块是很容易的。这种扩展模块可以做两件不能直接在Python中完成的事情:它们可以实现新的内置对象类型,以及调用C库函数和系统调用。 为了支持扩展,Python API(应用程序员接口)定义了一组函数、宏和变量,它们提供对 ...
分类:
其他好文 时间:
2018-05-25 19:19:13
阅读次数:
217
首先,CLR和JAVA虚拟机(Java Virtual Machine,简称:JVM)并非一个层面的系统。前者可松散地被描述为just-in-time(JIT)优化编译器和垃圾收集器的混合物,而后者仅仅是一个解释器; 其次,早先的JVM使用的是第一代解释器原理,先将java源代码编译成字节码(byt ...
分类:
其他好文 时间:
2018-05-21 00:06:10
阅读次数:
172
前言 从前面的3篇文章中,我们分析了5个垃圾收集器,还有一些 GC 的算法,那么,在 GC 调优中,我们肯定会先判断哪里出现的问题,然后再根据出现的问题进行调优,而调优的手段就是 JVM 提供给我们的那些参数或者说选项,这些参数将会改变 GC 的运行方式。因此,他们显得极为重要。 我们将每一个垃圾收 ...
分类:
其他好文 时间:
2018-05-20 00:48:18
阅读次数:
210
前言 在 "深入浅出 JVM GC(2)" 中,我们介绍了一些 GC 算法,GC 名词,同时也留下了一个问题,就是每个 GC 收集器的具体作用。有哪些 GC 收集器呢? 1. Serial 串行收集器(只适用于堆内存 256M 以下的 JVM ) 2. ParNew 并行收集器(Serial 收集器 ...
分类:
其他好文 时间:
2018-05-20 00:46:17
阅读次数:
148