内存溢出该怎么办 java 内存溢出heap 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从异常看是堆溢出,抛开代码看,楼主先设置一下堆大小 -Xms -Xmx 等选项,然后看是否有溢出,如果还有出现那就要通过工具观察一下内存以及问题代码。 at spider.HTML.getHtml(HTML.java:159)at spider.Control.main(Control.java:59)上面的两行代码是你自己写的吗?如果是查找下问题所在。 1. 检查代码是否有问题(比如不停写内容到内存而不释放)2. 如果没问题,或者是必须要写入,那就增加JVM堆大小。 CloseableHttpResponse response = httpClient.execute(httpGet); int statusCode = response.getStatusLine().getStatusCode(); if(statusCode == HttpStatus.SC_OK){ html = EntityUtils.toString(response.getEntity(), "utf-8"); String title=getHtmlTitle(html); 异常提示的就是这句html = EntityUtils.toString(response.getEntity(), "utf-8"); 我是用httpclient请求url获取网页源码,昨天是运行到7000多页的时候报的溢出 你确定你程序没有内存泄露的错误?你确定给Java分配了足够的内存?用-Xmx手动设置一下堆大小吧,看是否还溢出。如果还溢出那只能说明你的内存太小了不能满足程序要求,这是硬伤没办法,可以考虑增加虚拟内存 CloseableHttpResponse response = httpClient.execute(httpGet); int statusCode = response.getStatusLine().getStatusCode(); if(statusCode == HttpStatus.SC_OK){ html = EntityUtils.toString(response.getEntity(), "utf-8"); String title=getHtmlTitle(html); 异常提示的就是这句html = EntityUtils.toString(response.getEntity(), "utf-8"); 我是用httpclient请求url获取网页源码,昨天是运行到7000多页的时候报的溢出 html = EntityUtils.toString(response.getEntity(), "utf-8");字符串是有长度的,一般这种不可预知长度的字符数据,还是改用流操作。如果还是太大,建议进一步考虑缓存啥的。 CloseableHttpResponse response = httpClient.execute(httpGet); int statusCode = response.getStatusLine().getStatusCode(); if(statusCode == HttpStatus.SC_OK){ html = EntityUtils.toString(response.getEntity(), "utf-8"); String title=getHtmlTitle(html); 异常提示的就是这句html = EntityUtils.toString(response.getEntity(), "utf-8"); 我是用httpclient请求url获取网页源码,昨天是运行到7000多页的时候报的溢出 html = EntityUtils.toString(response.getEntity(), "utf-8");字符串是有长度的,一般这种不可预知长度的字符数据,还是改用流操作。如果还是太大,建议进一步考虑缓存啥的。具体应该怎么用流操作呢,不太会用那个,能否给个示例 具体应该怎么用流操作呢,不太会用那个,能否给个示例不过,HttpEntity获取流用getContent()的方法。HttpEntity tmpEntity = response.getEntity();InputStream stream = tmpEntity.getContent();后面的流怎么玩,自己去找例子,我懒惰下, 用java自带的分析工具,看看用需要多大的对内存,设置 vm 的参数,或者看自己的代码是不是可以改进. 高分,请问各位大侠,哪位有李兴华老师上课的J2SE的上课笔记? java 反射类型转换问题 请问浮点数输出的问题 java字符串替换问题 这个问题怎么解决? java web start 的高人请进!(有关签名的问题) 100分求together for jbuilder6.1的注册码! 怎么把JAVA的标题栏换成XP的啊 textArea使用中的幾個問題 如何压缩jdk自带的uuid的长度,但是要保证他的唯一性 Java屌丝求帮忙:请高手帮忙修改一个“截图功能”的优化调用效果. 求助,为什么加上其他面板后,对于键盘的监听没用了?
at spider.HTML.getHtml(HTML.java:159)
at spider.Control.main(Control.java:59)上面的两行代码是你自己写的吗?如果是查找下问题所在。
2. 如果没问题,或者是必须要写入,那就增加JVM堆大小。
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == HttpStatus.SC_OK){
html = EntityUtils.toString(response.getEntity(), "utf-8");
String title=getHtmlTitle(html);
异常提示的就是这句html = EntityUtils.toString(response.getEntity(), "utf-8"); 我是用httpclient请求url获取网页源码,昨天是运行到7000多页的时候报的溢出
你确定给Java分配了足够的内存?用-Xmx手动设置一下堆大小吧,看是否还溢出。
如果还溢出那只能说明你的内存太小了不能满足程序要求,这是硬伤没办法,可以考虑增加虚拟内存
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == HttpStatus.SC_OK){
html = EntityUtils.toString(response.getEntity(), "utf-8");
String title=getHtmlTitle(html);
异常提示的就是这句html = EntityUtils.toString(response.getEntity(), "utf-8"); 我是用httpclient请求url获取网页源码,昨天是运行到7000多页的时候报的溢出 html = EntityUtils.toString(response.getEntity(), "utf-8");
字符串是有长度的,一般这种不可预知长度的字符数据,还是改用流操作。如果还是太大,建议进一步考虑缓存啥的。
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == HttpStatus.SC_OK){
html = EntityUtils.toString(response.getEntity(), "utf-8");
String title=getHtmlTitle(html);
异常提示的就是这句html = EntityUtils.toString(response.getEntity(), "utf-8"); 我是用httpclient请求url获取网页源码,昨天是运行到7000多页的时候报的溢出 html = EntityUtils.toString(response.getEntity(), "utf-8");
字符串是有长度的,一般这种不可预知长度的字符数据,还是改用流操作。如果还是太大,建议进一步考虑缓存啥的。
具体应该怎么用流操作呢,不太会用那个,能否给个示例
不过,HttpEntity获取流用getContent()的方法。
HttpEntity tmpEntity = response.getEntity();
InputStream stream = tmpEntity.getContent();后面的流怎么玩,自己去找例子,我懒惰下,