jconsole将Java写的程序检测。 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能 ...
分类:
其他好文 时间:
2018-10-30 13:17:33
阅读次数:
241
Java堆溢出 错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出 解决办法:设置堆内存大小 // -Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError 下面这 ...
分类:
其他好文 时间:
2018-10-30 01:00:29
阅读次数:
205
基本数据类型值是直接存放在栈内存中的,堆内存是存储引用数据类型值的(相当于一个存储的仓库) ...
分类:
Web程序 时间:
2018-10-28 15:00:01
阅读次数:
167
一、不可变 一个 String 类型的值是不可以改变的,比如,String china = "中国",“中国”这个字符串从它创建开始直到销毁都是不可改变的。 二、字符串常量池 字面量声明的字符串内存都分配在字符串常量池。 三、new 的字符串都是一个新的字符串 引用 a 和引用 b 指向不同的堆内存 ...
分类:
其他好文 时间:
2018-10-27 19:46:56
阅读次数:
161
Java堆内存溢出 只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象, 那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常,代码如下: 在运行的时候,需要设置一下Java堆的大小,并且不可扩展,操作如下: 然后填写JVM启动参数:-Xms20m -X ...
分类:
其他好文 时间:
2018-10-25 19:24:22
阅读次数:
182
脚本型语言:shell perl ruby 解释性语言 系统级语言: c c++ erlang golang应用级语言: python java C JVM执行引擎里面有一个块运行时的内存,内存里分为线程共享区和线城私有区线程共享区:方法区,堆内存(优化)线城私有区:java栈(执行),共有方法栈, ...
分类:
编程语言 时间:
2018-10-24 22:07:25
阅读次数:
160
本文参考 "C++智能指针简单剖析" 内存泄露 我们知道一个对象(变量)的生命周期结束的时候, 会自动释放掉其占用的内存(例如局部变量在包含它的第一个括号结束的时候自动释放掉内存) 这样会编译错误. 但是如果这样写呢? 程序结束的时候会自动释放 的内存, 但是由 算符创建的匿名变量却一直留在内存中, ...
分类:
编程语言 时间:
2018-10-22 20:49:54
阅读次数:
155
1、JVM内存划分为堆内存和非堆内存2、堆内存用途:存放对象,垃圾收集器就是收集这些对象,然后根据GC算法回收。3、非堆内存用途:永久代,也称为方法区,存储程序运行时长期存活的对象,比如类的元数据、方法、常量、属性等。元数据:calss的文本,路径等类属性:static属性类方法;在JDK1.8版本废弃了永久代,替代的是元空间(MetaSpace),元空间与永久代上类似,都是方法区的实现,他们最大
分类:
其他好文 时间:
2018-10-22 01:19:00
阅读次数:
161
MAT内存分析工具 MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器。可以用于查找内存泄露以及查看内存消耗情况。MAT是基于Eclipse开发的,是一款免费的性能分析工具。读者可以在下载并使用MAT。 1 初识MAT 在分析堆快照前,首先需要导出应用程序的堆快照。 ...
分类:
系统相关 时间:
2018-10-21 14:15:40
阅读次数:
277
1、JVM参数调优 针对运行效果 吞吐量 初始堆内存与最大堆尽量相同 减少垃圾回收次数 2、扫包优化: 启动优化 默认Tomcat容器改为Undertow Tomcat的吞吐量5000左右 Undertow 8000左右 底层优化的好 Tomcat 参数调优 下面聊一聊 扫包优化 @SpringBo ...
分类:
编程语言 时间:
2018-10-20 22:09:35
阅读次数:
321