2

所以基本上问题如上所述。我编写了一个程序,它读取 csv 文件并即时进行一些计算。我在下面发布了代码的逻辑,我通过资源监视器没有看到瓶颈。它一定是我无法通过监控资源监控的瓶颈。

那么我问的瓶颈在哪里?如果它不是 cpu 既不是 hdd 也不是 ram?

也许它的 ram 到 cpu 的链接是弱链接,因为每个文件都很小,大约 30 mb,所以它在一秒钟内被加载到 ram。CPU 使用率约为 30%,所以如果文件已经在 ram 中并且使用率低于 ram - cpu 链接是否会降低性能?java使用的ram只有300mb,有什么建议吗?

我知道它的硬件问题比编程问题更多,但是它的 Java 使用硬件,所以也许有人可以向我解释薄弱环节在哪里。

我的规格:核心 i3-540,硬盘 7200rm 希捷,内存 ddr3 8gb

for (int z = 0; z < f.size(); z++){

BufferedReader br2 = new BufferedReader(new FileReader(File));
String Line2 = br2.readLine();
while((Line2 = br2.readLine())!= null){


if(){
do some calculation
}
if(){
do some calculation
}
if(){
do some calculation
}
}
System.out.println(results);
4

1 回答 1

0

您可以通过从等式中取出不同的部分来测试什么是瓶颈。要取出 CPU,只需读取文件,不要做任何其他事情。要取出磁盘,请一次又一次地读取同一个文件,假设它适合您的文件缓存。将此与一切的时间进行比较。

于 2013-08-18T06:40:08.380 回答