草庐IT

java - 通过 Apache POI 读取大型 Excel 文件 (xlsx) 时出错

我正在尝试通过ApachePOI读取大型excel文件xlsx,比如40-50MB。我正在摆脱内存异常。当前堆内存为3GB。我可以毫无问题地读取较小的excel文件。我需要一种方法来读取大型excel文件,然后通过SpringexcelView将它们作为响应返回。publicclassFetchExcelextendsAbstractView{@OverrideprotectedvoidrenderMergedOutputModel(Mapmodel,HttpServletRequestrequest,HttpServletResponseresponse)throwsExceptio

java - 相当于大型数据集的 map (在 java 中)的数据结构

是否有一个已经实现的数据结构,我可以使用它来分配给一个对象(在我的例子中是一个边),一个整数?我正在从一个文件中读取一个图形,有1000万个顶点,6000万个边,我使用map(costs.put(e,cost))为每个边分配一个成本。我以这种方式创建成本图:costs=newHashMap();它给出的异常(exception)是:java.lang.OutOfMemoryError:Javaheapspaceatjava.util.HashMap.resize(UnknownSource)atjava.util.HashMap.addEntry(UnknownSource)atjav

java - 在大型数据集中对相同值进行分组的有效解决方案

在我的工作中,我要为以下问题开发和实现解决方案:给定一个包含30M记录的数据集,从特定数据集字段中提取(键,值)元组,按键和值对它们进行分组,存储每个键的相同值的数量。将每个键的前5000个最常见值写入数据库。每个数据集行最多包含100个(键、值)序列化XML形式的元组。我想出了这样的解决方案(使用Spring-Batch):批处理作业步骤:第1步。遍历数据集行并提取(键、值)元组。获得一些固定数量的元组后,将它们转储到磁盘上。每个元组进入一个名称模式为“/chunk-”的文件,因此指定键的所有值都存储在一个目录中。在一个文件中,值按顺序存储。第2步。遍历所有''目录并将它们的bloc

java - 在大型项目中使用 Sonar

我正在从事一个相当大的项目(大约maven550模块)。现在,我想知道如何在CI级别的这样一个大项目上运行Sonar(我们为此使用Jenkins)如果我们从父pom文件夹中运行mvnsonar:sonar,它会运行约1小时,然后在OutOfMemory上失败,即使我们显着增加它(~16GB)因此,我们研究了运行Sonar的其他策略。目前最吸引人的想法是:在生命周期内为每个模块运行Sonar。维护(子)模块列表,Sonar应在后期构建阶段并行运行。那么,请问这么大的项目用什么方式跑sonar比较好?有人可以提供一些通用配置来实现第一个或第二个想法或描述任何其他方式/最佳实践吗?

java - 大型项目的 Eclipse Content Assist Slowness

我在Eclipse中的一个大型Java项目中遇到了JavaContentAssist极度缓慢的问题。该项目有很多依赖的jar(>100)。我不太确定速度缓慢是否是由于依赖的jar造成的,但我猜是这样。你们有遇到过类似的问题吗?我将ActivationDelay更改为500ms以减轻痛苦,但我仍然弹出“ProblemswithContentAssist”提示禁用Mylyn。我还设置了以下超时标志。-Dorg.eclipse.jdt.ui.codeAssistTimeout=60000好像没什么用。-Xmx设置为900m。我使用的是带有4GBRAM的双核3GHzWindowsXP32位机器

java - 是否有工具可以在不加载完整 hprof 文件的情况下分析大型 Java 堆转储?

我使用EclipseMAT来分析hprof文件。这非常好,但如果您有2Gb的堆转储,那么您需要运行具有2Gb+堆大小的MAT才能加载完整的堆转储。我想知道是否有人知道可以分析2Gbhprof文件的工具,而无需本身使用那么多内存(例如,它不会加载完整的文件,但会以某种方式遍历它)?如果在客户服务器上生成hprof文件,这将很有用,因为我可以在服务器上运行一些分析,而不是尝试通过VPN复制2Gb文件。 最佳答案 hprof文件的格式如果不完全加载然后应用一些交叉引用就不能很好地工作。但是,您可以使用jmap跳过hprof转储以从正在运行

java - 大型开源 Java 应用程序/库

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在寻找大型(超过100MB)的开源Java项目。有人知道吗?注意:我将其标记为社区维基,但我不确定它是否正确。

java - 如何在 Eclipse 中合并大型项目?

我使用分支已经有一段时间了,但我总是使用命令行工具来进行实际的合并。但是,现在我只需要从Eclipse中进行操作。分支和合并多年来一直是SCM系统广泛使用的功能,我希望Eclipse能够很好地支持它,但事实似乎并非如此。目前我正在开发一个产品,该产品由多个需要分支在一起的项目组成。当将更改从主干合并到分支时,通常我会从分支结帐的根执行以下操作:(我在这里以Subversion为例,但这些问题也应该适用于其他SCM工具。)svnupdatesvnmerge^/trunksvncommit-m"Mergedfromtrunk"也许在中间解决一些冲突,但这就是我要做的全部。但是,在Eclip

java - 用于创建大型 CSV 文件的 Java IO 最佳实践

您好,我需要创建几个大型CSV文件,整个文件的数量可能是200万。所以我想知道如何有效地做到这一点..因此我想到了几个问题1。当我们通过BufferedWriter写入文件时,我们应该多久刷新一次?但是我认为bufferedWriter维护自己的缓冲区,一旦缓冲区已满,它就会自动刷新它,如果是这种情况,那么为什么还有flush方法呢??因为我要创建的文件会很大。所以当我开始写文件时,文件会自动提交到磁盘吗??(在调用writer.close()之前)或整个文件保留在主内存中直到我关闭writer?。通过提交我的意思是已经写入的部分没有任何部分在主内存中,即它已准备好进行GC

Java - 做大型 GUI 项目

直接回答我的问题。您如何进行大型GUI项目。到目前为止,我还没有用Java完成过任何更大的GUI项目,但我现在正在做的事情发展得非常快而且非常大,现在我被一大堆代码困住了,这些代码真的很烦人而且很乱。因为我来自网络开发领域,所以我习惯了MVC框架,所以我在我的项目模型中有3个包,我在其中保存与文件或数据库交互的类,在View中我为表单或GUI和Controller包保存我的类我保留大部分逻辑的地方。我被告知要分离我的逻辑,并将Action保留在一个类中,将听众保留在另一个类中,但我不知道如何将所有这些联系起来。到目前为止,我只有1个Controller类,我在其中执行有关调用GUI后发