java - JAVA EE应用程序中导出大量数据

标签 java performance jakarta-ee

我正在开发基于搜索的 Java EE 应用程序,它非常简单,就像任何搜索引擎一样,一个页面允许用户搜索内容并分页以移至下一组结果。现在我想提供该功能导出文本文件中的数据,但问题是当要导出的数据非常大时,它会消耗大约 100MB 的 JVM 内存。

请Java EE专家指点一下?

我看过here但这对我没有多大帮助

最佳答案

您很可能将整个数据保存在某种集合中,然后将其序列化为文本文件。正如您所注意到的,这可能适用于少量数据,但当数据量太大时,您的应用程序就会崩溃。在这种情况下,这不是一个好方法,因为您永远不知道查询将返回多少数据。

您应该将查询结果流式传输到输出,即在获取每个查询结果后写入它,无需临时保存它。您可以使用 OutputStream 的任何实现。如果您从 servlet 发送文件,您可能希望在设置正确的内容类型后直接写入 servlet 的输出流。

关于java - JAVA EE应用程序中导出大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21481867/

相关文章:

c - R:使用带有 .Call 和 C/C++ 包装器而不是 .Fortran 的 Fortran 子例程的优点?

ios - Sprite Kit iOS 中的慢动作

jakarta-ee - 将新的 jar 文件添加到 Web 应用程序而无需重新启动它

java - Weld OSGi + Apache Felix = 找不到包

java - 用于在 NetBeans 中对指向错误域的 session bean 进行单元测试的嵌入式 GlassFish 容器

java - 安卓 DevicePolicyManager lockNow()

java - JAXB 使用 Maven 插件编码 CDATA

Java 错误 - java : cannot find symbol - Bubblesort

java - GWT UiBinder I18n

arrays - Julia - 将矩阵转换为向量