【发布时间】:2011-12-16 16:45:45
【问题描述】:
我正在做一个频率词典,我在其中阅读了 1000 个文件,每个文件大约有 1000 行。我遵循的方法是:
- BufferedReader 通过文件读取文件
- 读取第一个文件,获取第一个句子,将句子拆分为数组字符串,然后用字符串数组中的值填充哈希图。
- 为该文件中的所有句子执行此操作
- 对所有 1000 个文件执行此操作
我的问题是,这不是一种非常有效的方法,我需要大约 4 分钟来完成所有这些。我增加了堆大小,重构了代码以确保我没有做错什么。对于这种方法,我完全确定代码中没有什么可以改进的。
我敢打赌,每次读取一个句子时,都会应用一个拆分,乘以一个文件中的 1000 个句子,再乘以 1000 个文件,就是要处理的大量拆分。 我的想法是,我可以将每个文件读入一个字符数组,然后每个文件只拆分一次,而不是逐个文件读取和处理。这将减轻拆分所消耗的处理时间。任何实施建议将不胜感激。
【问题讨论】:
-
那么,您尝试过您的建议了吗?
-
如果您有个人资料,则无需下注。
-
我真的不知道该怎么做:p 这就是我需要帮助的原因。 profile 向我展示了 80% 的时间使用 char[],我假设它是按句子阅读的句子。
-
您可以确定现有代码中没有什么需要改进的地方。不是。显示您的代码。
-
好吧,我可能夸大了。我的意思是,所花费的大量时间都在我想通过遵循另一种方法来减少的大量拆分中。这就是我需要帮助的地方
标签: java file optimization bufferedreader