0

我面临处理许多大于 70 MB 的 xml 文件的问题。验证和访问它们需要花费大量时间。现在我想知道以下步骤是否可以提高我的应用程序性能。

我可以在小于 1MB 的 gzip 文件中压缩 70MB 的 xml 文件。所以我只能保存 gzip 文件。可以像这样处理数据:

  • 使用 java.io.File 使 gzip 可用(仅小文件)
  • 使用例如 StringBufferInputStream 和 GZIPInputStream 来提取 RAM 中的内容
  • 处理内容 (RAM):解析、验证、...
  • 在 RAM 中创建一个表示新 xml 内容 (RAM) 的字符串
  • 使用GZIPOutputStream访问文件系统(又是小内容)

我可以这样做还是我的想法有误解?

提前谢谢!汉斯

4

1 回答 1

1

从 HD 读取 70 MB 应该不超过 1-2 秒(当然取决于您的硬件),所以如果您的延迟大于 4 秒,那么瓶颈不是您的 HD,而是 XML 处理以及你用它做的任何事情。

在开始编写您的 gzip 想法(听起来不错)之前,您可以将示例 XML 硬编码到您的代码中(是的,插入 70 MB 作为单个字符串),运行您的应用程序并使用一个漂亮的按钮说(“做它!”) -或者如果您在终端中等待用户输入 - 并查看 XML 处理需要多少时间。

这种方法会在处理之前将您的 70 megs 加载到内存中(作为代码),因此您应该能够看到消耗它真正需要多少。

之后,如果您看到它的处理速度足够快,那么问题显然出在 HD 上。如果没有,那么您应该尝试优化您的 XML 处理。

于 2009-03-26T16:07:22.817 回答