基本上问题如上所述。我编写了一个程序,它可以读取csv文件并进行一些计算。我发布了下面代码的逻辑,我看到没有通过resorse监视器的瓶颈。它必须是我无法通过监视器资源监视的地方的瓶颈。
那么我问的瓶颈在哪里?如果它不是cpu既不公用也不公?
也许它的ram到cpu链接是弱链接,因为文件相当小,每个30 mb左右,所以它被加载到ram一秒钟。 CPU使用率约为30%,因此如果文件已经在ram中并且使用率低于ram-cpu链接正在降低性能? java使用的Ram只有300mb,有什么建议吗?
我知道它比编程问题更多的硬件问题,但不过它的Java使用硬件,所以也许有人可以向我解释哪里有薄弱环节。
我的规格:核心i3-540,硬盘7200rm希捷,ram 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);
答案 0 :(得分:0)
你可以通过从等式中取出不同的部分来测试瓶颈是什么。要取出CPU,只需阅读文件,不要做任何其他事情。要取出磁盘,请一次又一次地读取同一文件,假设它适合您的文件缓存。将其与所有事物的时间进行比较。