Java、C#、および C++ で数値計算を行います。それらのいくつかは、大量のデータを (テキスト ファイルに) 保存します。それを行う最も速い方法は何ですか?
C++ .
ofstream file;
file.open(plik);
for(int i=0;i<251;i++){
for(int j=0;j<81;j++)
file<<(i-100)*0.01<<" "<<(j-40)*0.01<<" "<<U[i][j]<<endl;
file<<endl;
}
私はどちらが非常に速いと思いますか(私は正しいですか?:))
ジャワ
void SaveOutput(double[][] U, String fileName) throws IOException
{
PrintWriter tx = new PrintWriter(new FileWriter(fileName));
for(int i=0;i<251;i++)
{
for(int j=0;j<81;j++)
{
tx.println(String.format("%e %e %e ",(i - 100) * dz, (j - 40) * dz, U[i][j]));
}
tx.println();
}
tx.close();
}
C# の例も同様です。
ここで私を悩ませます。行ごとに String オブジェクトを作成します (大量のゴミ)。この例ではそれほど多くはありませんが、10 000 000 行になることもあります。これは私に質問を導きます:
- C++ の例はもっと速くできますか?
- JavaにStringBuilderを使用する必要がありますか、それとも行数のために悪いかもしれません
- 他の方法やライブラリはありますか?
- C# はどうですか?
ありがとうございました