gpt4 book ai didi

java - 为什么从文件输入越来越快?

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:33 25 4
gpt4 key购买 nike

我有10个文件,每个文件500M。

我使用Long randomValue = Math.abs(random.nextLong());生成这些文件。文件中的每一行都是一个随机值。一个文件大约有26374000行。

当我在另一个程序中逐个读取这些文件并计算成本时间时,我发现输入变得更快。为什么?

read 0 file 26373542 lines time : 27046ms
read 1 file 26373627 lines time : 24155ms
read 2 file 26373676 lines time : 19227ms
read 3 file 26373768 lines time : 22875ms
read 4 file 26373681 lines time : 20813ms
read 5 file 26373774 lines time : 18297ms
read 6 file 26373787 lines time : 10556ms
read 7 file 26373557 lines time : 11614ms
read 8 file 26373566 lines time : 9751ms
read 9 file 26373653 lines time : 13372ms

这是我的程序:

Long start = new Date().getTime();
FileReader fr = new FileReader(inFile);
BufferedReader br = new BufferedReader(fr);
String num;
while((num = br.readLine()) != null) {
sorted[j++] = Long.parseLong(num);
count++;
}
Long end = new Date().getTime();
System.out.println("read " + i + " file " + j + "lines time : " + (mid - start) + "ms");
br.close();
fr.close();

最佳答案

一些事情:

  1. 正如评论中所指出的,一旦 JVM 具有 warmed up ,它通常会提高性能。 - 尽管从您的代码片段中并不清楚您是否为每个文件启动一个新的 JVM。
  2. 您正在从磁盘读取文件。目前尚不清楚它是旋转磁盘还是 SSD - 它们具有截然不同的性能特征。尽管如此,从磁盘读取数据时存在大量变量,因此很难对您正在测试的底层算法进行直接基准测试,除非您先将数据加载到内存中,然后然后在秒表上点击开始。
  3. 您的文件不相同(行数不同、内容可能不同等)
  4. 考虑完上述内容后,您可能需要考虑是否进行了足够多的可重复测试、测试持续时间是否足够长等,然后再得出太多有关性能的具体结论。

关于java - 为什么从文件输入越来越快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com