我用 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# 呢?
谢谢