java代码内存又泄露...一个while循环的线程...到底哪里内存泄露了

csdpz csdpz 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我简单的介绍大致情况下,
因为有需求说要在更改设置后程序还能自动启动,所以做了一个小工具检测工具是否启动,如果没有启动就去启动,有的话就不启动。其实 就是通过一个一直运行的线程,去读取tasklist里面有没有存在该程序名的进程...线程设定了没跑一次睡五秒。从代码上来看,不是很多,但是从占用的内存上来看,自从启动以后,内存的占用就会越来越高,好像java的垃圾回收没有起作用....不晓得是哪里出现内容泄露了。

这个小程序吧也是别人以前写好的,现在关注性能问题了,于是老大把这个问题交给我了,刚参加工作3个月啊让我分析内存泄露,表示小有压力....

下面给出伪代码(公司比较注重信息安全,所以没有源码,就来点伪代码吧):
//线程的run()方法

public void run()
{
while (true)
{
boolean isRun = service.isLMTRun();

if (!isRun)
{
service.startLMT();
}

Thread.sleeep(5000); //省略异常
}
}


public boolean isLMTRun()
{
BufferedReader br = null;
String line = null;

try
{
Process p = Runtime.getRuntiem()****;//这一段忘记了,反正是获取系统进程

br = new BufferedReader(new InputStream(p.getInputStream()));
while ((line = br.readline()) != null)
{
if ()
{
//逻辑判断代码
}
}
catch (Exception e)
{
log.error(e);
}
finally
{
if (null != br)
{
br.close(); //省略异常
}
}

}


}


大概就是这么一段代码,运行一天后,内存会到60M作用....崩溃啊...很小的程序
我分析了下,不晓得对不对,说出我的想法。
br = new BufferedReader(new InputStream(p.getInputStream()));
对于这句代码是不是会有内存泄露的情况呢?
每次循环都会去创建BufferedReader和InputStream的一个对象,
br每次会关闭资源,但是InputStream的对象是不是就是没有关掉,所以5秒钟一次的循环让程序在运行一段时间会占用很大的内存无法让java虚拟机进行正常的垃圾回收呢?

还是有什么地方会造出内存泄露....请各位大佬赐教
...全文

相关推荐

Java高频面试基础问题与知识点整理

Java高频面试知识点总结:覆盖高频基础知识考点+高频集合知识点深入分析+高频多线程与并发编程面试题汇总+其他扩展考察等。

张彦峰ZYF

正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar

正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar

天天Matlab科研工作室

Java微服务如何拆解审计日志查询服务

标题:Java微服务如何拆解审计日志查询服务 内容概要:围绕缓存策略、任务调度、回压控制和审计追踪,拆解Java微服务如何拆解审计日志查询服务的实现细节。 xdronline.com xdrea.com 9g.xinmei6.com xinghaohuanbao.com m.xiker66.com

2601_97068614

港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细 逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量

港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细。逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量。分钟数据汇总每分钟开盘价、最高价、最低价、收盘价、成交量及成交额。历史行情覆盖近十五年,字段清晰完整,便于回溯分析。 数据源:CMES金融数据库

2401_89140926

MO-372A_PQFP-F6_I1p27-R3p8x4p48Z1p1-N5p5C1p24.stp

MO-372A_PQFP-F6_I1p27-R3p8x4p48Z1p1-N5p5C1p24.stp

std86021
评论 16
收藏 已收藏
分享
返回顶部
csdpz
Java 51,407 成员 86,126 内容