2020
10-10
10-10
Java 分析并解决内存泄漏的实例
这几天,一直在为Java的“内存泄露”问题纠结。Java应用程序占用的内存在不断的、有规律的上涨,最终超过了监控阈值。福尔摩斯不得不出手了!分析内存泄露的一般步骤如果发现Java应用程序占用的内存出现了泄露的迹象,那么我们一般采用下面的步骤分析:把Java应用程序使用的heapdump下来使用Javaheap分析工具,找出内存占用超出预期(一般是因为数量太多)的嫌疑对象必要时,需要分析嫌疑对象和其他对象的引用关系。查...
继续阅读 >
Jenkins下用DockerFile自动部署Java(SpringBoot)项目,简单自用,勿喷一、Jenkins构建Java(SpringBoot)项目新建-构建一个Maven项目需要提一下,现在新安装的没有这个选项,需要在插件里安装一下MavenIntegrationjava配置,其他配置查看以前文章以上配置即可配置完成二、发布到服务器,DockerFile部署自动构建PublishSSH配置这里在目标服务器上放了个shell命令,我这里的web是做了个Nginx的负载均衡,所以路径方面自行修改Docker...
首先打印1-100数字如果用一个单线程实现那么只要一个for循环即可,那么如果要用两个线程打印出来呢?(一个线程打印奇数,一个线程打印偶数)于是大家会想到可以通过加锁实现,但是这样的效率是不是不高?这里我用一个变量来控制两个线程的输出publicclassThreadTest{volatileintflag=0;publicvoidrunThread()throwsInterruptedException{Threadt1=newThread(newThread1());Threadt2=newThread(newThread2(...
问题,打一个页面cpu暴涨,打开一次就涨100%,一会系统就卡的不行了。排查方法,因为是线上的linux,没有用jvm监控工具rim链接上去。只好用命令排查:topcpu排序,一个java进程cpu到500%了,什么鬼.....查到对应java进程jps||ps-aux|grep端口pid=13455查看进程中线程使用情况T排序查看cpu占用time最高的线程编号top-Hp13455有个线程9877的时间一直在爆涨获取线程十六进制地址9877(十六进制一定要小写)printf"%x\n"9...
有些时候我们需要对一批数据进行分批处理,使用subList方法可以实现对List集合进行固定长度的分割./**List分割*/publicstaticList<List<String>>groupList(List<String>list){List<List<String>>listGroup=newArrayList<List<String>>();intlistSize=list.size();//子集合的长度inttoIndex=2;for(inti=0;i<list.size();i+=2){if(i+2>listSize){toIn...