精华内容
下载资源
问答
  • java文件上传内存溢出

    2020-12-15 14:28:46
    java -jar -server -Xms2g -Xmx2g java ${JVM_OPTS} -jar jar/diageo-background.jar --spring.profiles.active=prod $SPRING_OPTS > diageobi.log 2>&1 & java $JVM_OPTS -jar -server -Xms2g -...
    java -jar -server -Xms2g -Xmx2g 
    
    java  ${JVM_OPTS}  -jar jar/diageo-background.jar --spring.profiles.active=prod  $SPRING_OPTS > diageobi.log 2>&1 &
    
    java $JVM_OPTS -jar -server -Xms2g -Xmx2g $JAR_FILE $SPRING_OPTS >/dev/null 2>&1 &
    

    jar文件

    # War file 
    JAR_FILE="../jar/order-0.1.0-RELEASE.jar"
    

    SPRING_OPTS

    # SPRING_OPTS
    SPRING_OPTS="--spring.profiles.active=prod,swagger,no-liquibase"
    

    Log文件

    # Log config
    SPRING_OPTS="${SPRING_OPTS} --logging.file=logs/${APP_ID}.log"
    
    SPRING_OPTS="${SPRING_OPTS} --eureka.client.service-url.defaultZone=http://admin:GenieRegistry@localhost:30026/eureka/"
     
    SPRING_OPTS="${SPRING_OPTS} --spring.cloud.config.uri=http://admin:GenieRegistry@localhost:30026/config/"
    
    
    java $JVM_OPTS -jar -server -Xms2g -Xmx2g $JAR_FILE $SPRING_OPTS >/dev/null 2>&1 &
    
    展开全文
  • Java上传数据内存溢出

    2016-01-01 07:12:29
    银行的系统,上传一个文件给其他系统,由于数据量太大,报内存溢出,急求。
  • 下面小编就为大家带来一篇完美解决java读取大文件内存溢出的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java 解决堆内存溢出

    2021-05-06 17:05:39
    文章目录目录实战-内存溢出实战-堆内存溢出内存溢出演示代码Eclipse Memory Analyzer 分析流程jvisualvm.exe 分析堆内存溢出内存溢出的场景商城项目可能存在堆内存溢出的方法 目录 实战-内存溢出内存溢出 栈...

    目录

    实战-内存溢出

    • 堆内存溢出
    • 栈内存溢出
    • 方法区溢出
    • 直接内存溢出

    实战-堆内存溢出

    • 演示堆内存溢出代码,并且定位问题
    • 总结堆内存溢出的场景与解决方案
    • 分析商城项目中可能存在堆内存溢出的代码并且解决

    堆内存溢出演示代码

    public class HeapOOMTest {
        private List<String> oomList = new ArrayList<>();
    
        public static void main(String[] args) {
            HeapOOMTest oomTest = new HeapOOMTest();
            while (true) {
                oomTest.oomList.add(UUID.randomUUID().toString());
            }
        }
    }
    

    VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError

    运行该代码的Main方法

    java.lang.OutOfMemoryError: Java heap space
    Dumping heap to java_pid18940.hprof ...
    Heap dump file created [23854536 bytes in 0.061 secs]
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    	at java.base/java.lang.Long.fastUUID(Long.java:441)
    	at java.base/java.lang.System$2.fastUUID(System.java:2136)
    	at java.base/java.util.UUID.toString(UUID.java:395)
    	at com.imooc.jvminaction.HeapOOMTest.main(HeapOOMTest.java:16)
    

    在项目的根目录会自动创建 java_pid18940.hprof 的文件

    Mac系统:mat.app

    Win系统:Eclipse Memory Analyzer

    Eclipse Memory Analyzer 分析流程
    • File -> Open Heap Dump,加载刚才产生的hprof文件,选择Leak Suspects Report
    • 在Overview, 鼠标移动到拼图,可以看出
      • java.lang.Thread @ 0xff1dbc28 main
        Shallow Size: 120 B RetainedSize: 10.9 MB (明显不正常的)
    • 点击 ++Leak Suspects:++ includes leak suspects and a system overview.
      • Problem Suspect 1 会提示方法占用空间的百分比
        • 点击 Details » Accumulated Objects in Dominator Tree
        • 点击 java.lang.Object[160065] @ 0xffe00000
          • List objects --> with incoming references (别人调用自己)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TyyjRdj3-1620291913080)(https://qiniuyun.eddilee.cn/%E5%9B%BE%E7%89%87_1620288690251.png?imageView2/0/q/75%7Cwatermark/2/text/YmxvZy5lZGRpbGVlLmNu/font/5a6L5L2T/fontsize/360/fill/IzAwMDAwMA==/dissolve/100/gravity/Center/dx/10/dy/10)]

    Leak Suspects » Leaks » Problem Suspect 1 » Description » See stacktrace 也是可以看出问题的

    图片.png

    jvisualvm.exe 分析堆内存溢出

    图片.png

    图片.png

    图片.png

    堆内存溢出的场景

    • 内存泄露
      • 借助工具定位问题
    • 非内存泄露
      • -Xms -Xmx 分配不合理

    商城项目可能存在堆内存溢出的方法

    1.通过控制pageSize判断

    if (pageSize > 100) {
        pageSize = 100;
    }
    

    2.SpringMVC方式

    类头加注解

    @Validated
    

    pageSize的入参加注解

    @Max(100)
    

    图片.png

    展开全文
  • 我一直在尝试使用Dynamic Reports生成报告文件,但是似乎并没有在Server上创建文件。 当我使用在本地运行的相同方法时,它将生成文件,但是当我在服务器上运行该文件时,则不会创建文件。 我正在Eclipse中运行Tomcat...

    我一直在尝试使用Dynamic Reports生成报告文件,但是似乎并没有在Server上创建文件。 当我使用在本地运行的相同方法时,它将生成文件,但是当我在服务器上运行该文件时,则不会创建文件。 我正在Eclipse中运行Tomcat 7。 该文件应该使用FileOutputStream创建。

    好了,这是在本地工作的方法,但不适用于Tomcat:

    StyleBuilder plainStyle = stl.style().setFontName("FreeUniversal");

    StyleBuilder boldStyle = stl.style(plainStyle).bold();

    StyleBuilder italicStyle = stl.style(plainStyle).italic();

    StyleBuilder boldItalicStyle = stl.style(plainStyle).boldItalic();

    try {

    report().title(

    Templates.createTitleComponent("Fonts"),

    cmp.text("FreeUniversal font - plain").setStyle(plainStyle),

    cmp.text("FreeUniversal font - bold").setStyle(boldStyle),

    cmp.text("FreeUniversal font - italic").setStyle(italicStyle),

    cmp.text("FreeUniversal font - bolditalic").setStyle(boldItalicStyle))

    .toDocx(createFile("docx"))

    // .show()

    ;

    } catch (DRException e) {

    e.printStackTrace();

    }

    哦,还有CreateFile(...)方法:

    private FileOutputStream createFile(String extension) throws FileNotFoundException {

    FileOutputStream file;

    String filePath = reportsPath + "generated_report." + extension;

    filePath = "generated_report." + extension;

    System.out.println("FILENAME IS: " + filePath);

    file = new FileOutputStream(new File(filePath));

    return file;

    }

    我知道这里的reportsPath无效。

    因此,没有例外。 顺便说一句,也有可能在该服务器上也没有创建其他文件,因为我也通过servlet上传文件并被使用,但是它没有出现在路径中并且没有。似乎没有保存,但是无论如何我都不需要保留上传的文件,所以这不是什么大问题,但是现在呢? 我需要能够找到那些报告,因此必须创建文件。

    而且我敢肯定,不是我找不到文件,而是到处运行搜索,实际上在运行服务器的所有计算机中,都没有使用该名称创建文件...

    那么,有什么想法吗? 它一定是Tomcat配置问题还是什么?

    有任何想法吗? 谢谢

    展开全文
  • 项目中由于用到附件上传,在提交测试时发现文件附件过大导致java虚拟机内存溢出,就在后台添加限制 fileupload.getSize(); if(fileupload.getSize()&amp;amp;gt;1024*1024*10){ result.setCode(StatusCode...

    项目中由于用到附件上传,在提交测试时发现文件附件过大导致java虚拟机内存溢出,就在后台添加限制

            fileupload.getSize();
            if(fileupload.getSize()>1024*1024*10){
                result.setCode(StatusCode.UPLOAD_FILE_FAILURE);
                result.setStatus("error");
                result.setMsg("上传文件不能大于10M!");
                if(logger.isDebugEnabled()){
                    result.setDescription(upDownService.getErrorInfo());
                }
                return result;
            }

    后台添加限制后发现文件过大还是会导致java虚拟机内存溢出,就在前台使用jquary进行限制

            var file = $("#mediaPath")[0];
            if(file.files[0].size>10*1024*1024){
                base_alert_time("最大允许上传10M文件!", 1000);
                   return;
            }
    展开全文
  • springboot上传文件内存溢出的可能解决办法 在springboot中上传文件时要考虑内存的情况,一般我们会通过在执行服务时加入-Xms512m -Xmx512m等参数加大堆内存,但这是指标不治本的,关键还是看代码处理的...
  • java 读 大文件excel 内存溢出 解决

    千次阅读 2017-05-25 13:27:31
    POI官方推荐解决内存溢出的方式使用CVS格式解析,我们不可能手工将Excel文件转换成CVS格式再上传,这样做太麻烦了,好再POI给出了xlsx转换CVS的例子,基于这个例子我进行了一下改造,即可解决用户模式读取Excel内存...
  • 首先聊聊这个异常信息,该异常出现... 文件上传如果出现该问题 将文件分片上传 直接在前端上传到云储存(oss等,不安全) 限制文件大小 检查项目中是否存在Aspect切面日志,一般日之内会凭借请求参数,文件过...
  • java内存溢出

    2013-12-17 11:22:34
    内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题。内存溢出与锁表则不然,...
  • Java内存溢出

    2017-09-19 14:51:23
    内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。Java的内存管理就是对象的分配和释放问题。在Java中,内存的分配是由程序完成的,而内存的...
  • 解决java读取大文件内存溢出的问题

    千次阅读 2019-12-20 11:16:57
    1. 传统方式:在内存中读取文件内容 读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法: ? 1 2 Files.readLines(new File(path), ...
  • 最近项目上在实现大文件上传时一直报空指针然后跟踪代码发现,在实现上传时,I/O流报了java.lang.OutOfMemoryError的错误,也就是内存溢出的问题。 具体报错的位置: while ((length = is.read(buffer)) != -1) { ...
  • 文章目录运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存HotSpot虚拟机对象探秘对象的创建对象的...Java堆溢出虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出本机直接内存溢出...
  • 引起java内存溢出的原因有很多:主要有:1、尽早释放无用对象的引用。好的办法是使用临时变量的时候,让引用变量在退出活动域后,自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。对于仍然有指针...
  • 上传接口: @RequestMapping("uploadFile") public Boolean uploadFile(@RequestParam("file") MultipartFile file) { String rootPath = System.getProperty("user.dir"); String filePath = rootPath + "/...
  • 内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题。内存溢出与锁表则不然,...
  • springboot大文件上传导致内存溢出,如何解决?
  • 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 2、内存溢出 out of memory : 指程序申请内存时,没有足够的内存供申请者使用,或者说,...
  • Java内存泄露与溢出

    2018-03-07 15:49:12
    Java内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。内存溢出类似数组越届,超出你能存储的数据的上限 内存泄漏,就是内存使用完毕后,不能释放回收重新使用Java内存泄露与...
  • Java内存溢出

    2008-11-20 07:57:00
    Java内存溢出一、内存溢出类型1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。...
  • JAVA 开发内存溢出

    2011-06-11 22:48:00
    GC是垃圾收集的意思(Garbage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,...一、内存溢出类型1、java.lang.OutOfMemoryError: PermGen space J
  • 上传文件内存溢出错误OutOfMemory

    万次阅读 2015-02-23 23:20:27
    本来以前的项目框架里已经有现成的代码了,是用的springMVC文件上传下载的框架,但是以前都传的小文件,没什么问题,这次需要上传大文件,就老是报错了。 搜索原因的时候,发现好像这套框架是网络里面流传得比较...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,745
精华内容 5,898
关键字:

java文件上传内存溢出

java 订阅