java性能调优
qq_25333021
这个作者很懒,什么都没留下…
展开
-
JAVA使用jdk的jvisualvm分析内存溢出
1.使用jdk的jvisualvm打开如下:此处文件是从服务器直接抓包的文件最终发现代码原创 2020-08-19 14:24:14 · 659 阅读 · 0 评论 -
一台 Java 服务器可以跑多少个线程?
每个线程都有一个线程栈空间通过-Xss设置,查了一下我们服务器的关于jvm内存的配置 -Xms4096m -Xmx4096m -XX:MaxPermSize=1024m 只有这三个,并没有-Xss 和-XX:ThreadStackSize的配置,因此是走的默认值。几种JVM的默认栈大小不考虑系统限制,可以通过如下公式计算,得出最大线程数量线程数量=(机器本身可用内存-JVM分配的堆内存)/Xss的值,比如我们的容器本身大小是8G,堆大小是40...原创 2020-08-20 13:08:09 · 366 阅读 · 0 评论 -
ThreadLocal内存溢出
ThreadLocal 面试六连问,你能 Hold 住吗?ThreadLocal为Java并发提供了一个新的思路, 它用来存储Thread的局部变量, 从而达到各个Thread之间的隔离运行。它被广泛应用于框架之间的用户资源隔离、事务隔离等。但是用不好会导致内存泄漏, 本文重点用于对它的使用过程的疑难解答, 相信仔细阅读完后的朋友可以随心所欲的安全使用它。一、内存泄漏原因探索ThreadLocal操作不当会引发内存泄露,最主要的原因在于它的内部类ThreadL...原创 2020-08-20 13:19:07 · 2593 阅读 · 0 评论 -
JVisualVM再次分析
有了这款可视化工具,Java 应用性能分析、调优 so easy...JVisualVM 简介VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.6.0_13\bin)目录下面,有一个jvisualv.原创 2020-09-02 09:00:03 · 289 阅读 · 0 评论 -
java cpu变高,他在做什么
1.查找jvm进程ID: jps -lv 或者 ps aux | grep java2.根据pid,查找占用cpu较高的线程:ps -mp pid -o THREAD,tid,time 如图所示:找到占用cpu最高的tid (可以使用sort命令排序:sort -k 3 -r -n)3.将tid转换为16进制的数字:printf "%x\n" tid4.使用jstack命令,查询线程信息,从而定位到具体线程和代码:jstack pid | grep 7ccd -A 30 (注意7ccd..原创 2020-08-31 11:24:53 · 122 阅读 · 0 评论