草庐IT

Menu_Memory

全部标签

java - 如何在java中列出200万个文件目录而不会出现 "out of memory"异常

我必须处理大约200万个要处理的xml的目录。我已经解决了使用队列在机器和线程之间分配工作的处理,并且一切正常。但现在最大的问题是读取包含200万个文件的目录以逐步填充队列的瓶颈。我尝试使用File.listFiles()方法,但它给了我一个javaoutofmemory:heapspace异常。有什么想法吗? 最佳答案 首先,你有没有可能使用Java7?你有一个FileVisitor和Files.walkFileTree,这可能应该在您的内存限制范围内工作。要不然我能想到的唯一办法就是用File.listFiles(FileFil

java - 如何在java中列出200万个文件目录而不会出现 "out of memory"异常

我必须处理大约200万个要处理的xml的目录。我已经解决了使用队列在机器和线程之间分配工作的处理,并且一切正常。但现在最大的问题是读取包含200万个文件的目录以逐步填充队列的瓶颈。我尝试使用File.listFiles()方法,但它给了我一个javaoutofmemory:heapspace异常。有什么想法吗? 最佳答案 首先,你有没有可能使用Java7?你有一个FileVisitor和Files.walkFileTree,这可能应该在您的内存限制范围内工作。要不然我能想到的唯一办法就是用File.listFiles(FileFil

java - Intellij : Adding 'Interface' to my context menu in the Project Pane

目前在IntelliJ中,如果我在ProjectPane中右键单击一个包,我可以看到如下内容:new>Javaclassnew>Filenew>Package我想在"new"上下文菜单中添加一些新菜单项,例如Interface和Enum。有谁知道怎么做?我一直在设置>菜单和工具栏中玩弄,没有任何运气。编辑:有趣的是,如果我右键单击一个包并选择New>EditFileTemplates...,我可以看到一个接口(interface)的模板,并且在描述中它实际上说:Thisisabuilt-intemplateusedbyIDEAeachtimeyoucreateanewJavainter

java - Intellij : Adding 'Interface' to my context menu in the Project Pane

目前在IntelliJ中,如果我在ProjectPane中右键单击一个包,我可以看到如下内容:new>Javaclassnew>Filenew>Package我想在"new"上下文菜单中添加一些新菜单项,例如Interface和Enum。有谁知道怎么做?我一直在设置>菜单和工具栏中玩弄,没有任何运气。编辑:有趣的是,如果我右键单击一个包并选择New>EditFileTemplates...,我可以看到一个接口(interface)的模板,并且在描述中它实际上说:Thisisabuilt-intemplateusedbyIDEAeachtimeyoucreateanewJavainter

java - 使用 Hibernate 时如何避免警告 "firstResult/maxResults specified with collection fetch; applying in memory!"?

我在服务器日志中收到警告“firstResult/maxResultsspecifiedwithcollectionfetch;applyinmemory!”。但是一切正常。但我不想要这个警告。我的代码是publicemployeefind(intid){return(employee)getEntityManager().createQuery(QUERY).setParameter("id",id).getSingleResult();}我的查询是QUERY="fromemployeeasempleftjoinfetchemp.salaryleftjoinfetchemp.depa

java - 使用 Hibernate 时如何避免警告 "firstResult/maxResults specified with collection fetch; applying in memory!"?

我在服务器日志中收到警告“firstResult/maxResultsspecifiedwithcollectionfetch;applyinmemory!”。但是一切正常。但我不想要这个警告。我的代码是publicemployeefind(intid){return(employee)getEntityManager().createQuery(QUERY).setParameter("id",id).getSingleResult();}我的查询是QUERY="fromemployeeasempleftjoinfetchemp.salaryleftjoinfetchemp.depa

java - eclipse中的"insufficient memory for the Java Runtime Environment "消息

当我在Eclipse中运行我的Java代码时,我收到以下消息:ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.Nativememoryallocation(malloc)failedtoallocate4088bytesforAllocateHeapAnerrorreportfilewithmoreinformationissavedas:E:\Eclipse_Workspace\BTest\hs_err_pid1888.log我的电脑中有4GBRAM。我也将我的JRE从1.7更改为1.8。但问题似乎没有得

java - eclipse中的"insufficient memory for the Java Runtime Environment "消息

当我在Eclipse中运行我的Java代码时,我收到以下消息:ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.Nativememoryallocation(malloc)failedtoallocate4088bytesforAllocateHeapAnerrorreportfilewithmoreinformationissavedas:E:\Eclipse_Workspace\BTest\hs_err_pid1888.log我的电脑中有4GBRAM。我也将我的JRE从1.7更改为1.8。但问题似乎没有得

Java 单元测试 : how to measure memory footprint for method call

假设我有一个类进行一些繁重的处理,操作多个集合。我想要做的是确保这样的操作不会导致内存不足,甚至更好的是我想设置它可以使用多少内存的阈值。classMyClass(){publicvoidmyMethod(){for(inti=0;i这样做的正确方法是什么?或者这不可能/不可行? 最佳答案 我能想到几个选项:通过微基准(即jmh)了解您的方法需要多少内存。基于启发式估计构建分配策略。有几种开源解决方案实现类大小估计,即ClassSize.一种更简单的方法可能是利用缓存来释放很少使用的对象(即Guava的缓存)。正如@EnnoShio

Java 单元测试 : how to measure memory footprint for method call

假设我有一个类进行一些繁重的处理,操作多个集合。我想要做的是确保这样的操作不会导致内存不足,甚至更好的是我想设置它可以使用多少内存的阈值。classMyClass(){publicvoidmyMethod(){for(inti=0;i这样做的正确方法是什么?或者这不可能/不可行? 最佳答案 我能想到几个选项:通过微基准(即jmh)了解您的方法需要多少内存。基于启发式估计构建分配策略。有几种开源解决方案实现类大小估计,即ClassSize.一种更简单的方法可能是利用缓存来释放很少使用的对象(即Guava的缓存)。正如@EnnoShio