53MBのファイルを1文字ずつ読み取る必要があります。ifstreamを使用してC++で実行すると、ミリ秒単位で完了しますが、JavaInputStreamを使用すると数分かかります。Javaがこれほど遅いのは正常ですか、それとも何かが足りないのでしょうか。
また、Javaでプログラムを完了する必要があります(これらの文字を処理する関数を呼び出す必要があるサーブレットを使用します)。ファイル処理部分をCまたはC++で記述し、Java Native Interfaceを使用してこれらの関数をJavaプログラムとインターフェースすることを考えていました...このアイデアはどうですか?
誰かが私に他のヒントを教えてもらえますか...私は真剣にファイルをより速く読む必要があります。バッファリングされた入力を使用してみましたが、それでもC++に近いパフォーマンスが得られません。
編集済み:私のコードは複数のファイルにまたがっており、非常に汚れているため、概要を示しています
import java.io.*;
public class tmp {
public static void main(String args[]) {
try{
InputStream file = new BufferedInputStream(new FileInputStream("1.2.fasta"));
char ch;
while(file.available()!=0) {
ch = (char)file.read();
/* Do processing */
}
System.out.println("DONE");
file.close();
}catch(Exception e){}
}
}