2

したがって、基本的には上記のような質問です。csvファイルを読み取り、その場で計算を行うプログラムを作成しました。以下のコードのロジックを投稿しました。Resorse Monitor でボトルネックは見られません。監視リソースで監視できないどこかがボトルネックに違いない。

では、ボトルネックはどこにあるのでしょうか。CPUでもHDDでもRAMでもない場合は?

ファイルはそれぞれ約30 mbと非常に小さいため、RAMからCPUへのリンクが弱いリンクである可能性があるため、RAMに1秒でロードされます。CPU 使用率が約 30% であるため、ファイルが既に RAM にあり、使用率がおそらく RAM よりも低い場合、CPU リンクがパフォーマンスを低下させていますか? Javaで使用されるRAMは300MBのみですが、何か提案はありますか?

プログラミングの質問よりもハードウェアの質問の方が多いことは知っていますが、それでもJavaがハードウェアを使用しているため、誰かが弱いリンクの場所を説明してくれるかもしれません。

私のスペック: コア i3-540、hdd 7200rm seagate、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);
4

1 に答える 1

0

方程式からさまざまな部分を取り出すことで、ボトルネックが何であるかをテストできます。CPU を取り出すには、ファイルを読み取るだけで、他には何もしません。ディスクを取り出すには、ファイル キャッシュに収まると仮定して、同じファイルを何度も読み続けます。これをすべての時間と比較してください。

于 2013-08-18T06:40:08.380 に答える