|
|
1
4
只要您的文件存储在常规硬盘上,您就可以通过以一种能够提供访问位置的方式组织数据来获得最大可能的加速,也就是说,使一行中尽可能多的get/set调用访问文件的相同小区域。 这比你能做的任何其他事情都重要,因为在高清上访问随机点是现代PC做的最慢的事情——它比任何其他东西都要长10000倍。 因此,如果一次只能处理数据集的一部分(足够小,可以舒适地放入内存中的HD缓存),然后组合结果,那么就这样做。 或者,通过将文件存储在SSD或(更好的)RAM中来避免此问题。即使将它存储在一个简单的拇指驱动器上也可能是一个很大的改进。 |
|
|
2
4
而不是读成
另外,你也没有真正解释
您可以将这个想法转换为您的算法(如果适用):您将文件的一部分映射一次,这样不同的调用
|
|
|
3
1
如果我们能减少读取的次数,那么事情就会发展得更快。 3GB不是 巨大的 对于64位的JVM,因此相当多的文件可以放在内存中。 假设您将文件视为缓存的“页面”。当您读取一个值时,请阅读它周围的页面并将其保存在内存中。然后,当您进行更多的读操作时,首先检查缓存。 或者,如果您有能力,在处理开始时将整个内容读入内存。 |
|
|
4
1
可能是 This article 帮助你… |
|
|
5
1
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 8 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 8 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 8 月前 |
|
|
rudraraj · java中未声明最终变量 9 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 9 月前 |