性能优化
文章平均质量分 81
买糖买板栗
java
展开
-
使用阿里云aliyun-oss-java-sdk的 getObject方法返回的输入流未主动释放 导致http连接泄漏的线上问题排查
项目功能:基于netty的数据传输服务,接收客户端数据,存在本地磁盘;定时任务,定时处理本地的文件,并上传到阿里云OSS线上问题:运维监控发现过去半个小时都没有记录写入到DB(因为我们每上传到OSS一次会DB记一条记录)问题排查过程:1、运维将实时的进程的dump文件拷贝出来2、使用mat工具分析dump文件(mat介绍:https://www.cnblogs.com/trust-free...原创 2019-12-03 16:50:36 · 2729 阅读 · 0 评论 -
mac下 内存分析工具mat安装,使用mat分析:内存溢出、内存泄漏,结合jstat、jmap等命令的使用
分析前提:mat的安装详情:https://blog.csdn.net/qq_34599254/article/details/82685110 https://www.cnblogs.com/trust-freedom/p/6744948.html 安装后,再具体使用过程中,发现我dump的文件有4个G,而mat默认的配置是1个G,...原创 2019-11-11 19:12:49 · 6366 阅读 · 2 评论 -
Redis学习总结
Book1:Redis 入门指南(100/100)1、Redis 虽然是作为数据库开发的,但由于其提供了丰富的功能,越来越多的人将其用作:缓存、队列系统等。 缓存:Redis可以为每个键设置生存时间(Time To Live, TTL),生存时间到期后键会自动被删除。 Redis还可以限定数据占用的最大内存空间,在数据达到空间限制后原创 2016-11-22 13:52:05 · 1035 阅读 · 0 评论 -
性能分析1~top命令
最近开始学习解决线上问题的知识,大神一般怎么做,我也不知道,网上一搜都是top作为马前卒,来看看我的电脑这个命令运行的结果:第一次看,估计不是太适应,我们只看核心简单的:load avg:linux系统中的Load对当前CPU工作量的度量,也有简单的说是进程队列的长度。Load Average 就是一段时间(1分钟、5分钟、15分钟)内平均原创 2017-08-22 20:42:33 · 1105 阅读 · 0 评论 -
性能分析2~jstat命令
上一篇文章top命令,估计大家并没有感觉到top命令有啥用,这一篇文章我们结合jstat命令来讲解一下;个人习惯,上来直接讲理论已经不适合我这种很难静下心来的同志了,我们直接看实例:假设我们使用top命令发现进程id为15813的进行有问题,我们继续使用jstat命令来分析:上面的信息是这个进程的jvm信息,我们一一介绍:S0C:Survivor space 0 区大小 (其他原创 2017-08-22 21:59:45 · 866 阅读 · 0 评论 -
性能分析4~jmap命令分析:堆信息、内存溢出
先看一个例子:jmap -heap pid该命令用于:展示pid的整体堆信息,运行结果如下超级实用:jmap -histo pid | head -n20查看TOP20对象分布jmap -histo:live [pid] >a.log 将详细信息写入到文件,便于观察zhengchao1991deMacBook-Pro:~ zhengchao1991$ jmap -he...原创 2017-08-25 16:45:40 · 3409 阅读 · 0 评论 -
Java写一个简单的死锁程序
public class DeadlockSample { private final Object obj1 = new Object(); private final Object obj2 = new Object(); public static void main(String[] args) { Deadlock原创 2017-08-06 21:36:02 · 4614 阅读 · 0 评论 -
深入理解Java虚拟机7~晚期(运行期)优化
为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器,简称JIT编译器。注:JIT编译器并非虚拟机必备的,但却是体现虚拟机技术水平的标杆。1、解释器与编译器 解释器:当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即执行。 编译器:编译执行能提高效率。即:解释执行节原创 2017-02-12 21:57:44 · 1044 阅读 · 0 评论 -
Java常见性能优化总结
常见性能优化策略的总结2016-12-11 晓明Java北京本文要感谢我职级评定过程中的一位评委,他建议把之前所做的各种性能优化的案例和方案加以提炼、总结,以文档的形式沉淀下来,并在内部进行分享。力求达到如下效果:1. 形成可实践、可借鉴、可参考的各种性能优化的方案以及选型考虑点,同时配合具体的真实案例,其他人遇到相似问题时,不用从零开始。2. 有助于开阔视野,转载 2016-12-12 10:15:50 · 7636 阅读 · 2 评论 -
Fork/Join框架介绍 顺便测试jvm的内存溢出问题
1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+原创 2016-11-15 11:37:58 · 3990 阅读 · 0 评论 -
java系统性能调优
系统性能调优(1)----步骤与思路概念(来自度娘)系统优化原来是系统科学(系统论)的术语,现在常用作计算机方面的术语。它尽可能减少计算机执行的进程,更改工作模式,删除不必要的中断让机器运行更有效,优化文件位置使数据读写更快,空出更多的系统资源供用户支配,以及减少不必要的系统加载项及自动启动项。当然优化到一定程度可能略微影响系统稳定性,但基本对硬件无害。系统优化的一般步骤分为五步,转载 2016-11-01 11:17:40 · 6598 阅读 · 0 评论 -
java定义静态变量的作用 static关键字
我们知道类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,为了节省系统内存开销、共享资源,应该将一些变量声明为静态变量。通过下面的例子,你就会发现有什么不同。代码一:public class MemoryTest { static class Data{ private int week; private S原创 2016-10-25 11:33:09 · 10777 阅读 · 0 评论