std::fstream 需要很长时间才能将大数据写入.csv文件中
std::fstream taking very long time to write large data into .csv file
我正在尝试将大数据写入csv文件,我正在处理的行数以百万为单位。
我的代码正在以双精度数组的形式生成行。代码将数据写入文件需要很长时间(比在同一台计算机上使用 10k 批量插入将相同数量的记录写入数据库的两倍(。
我尝试在 std::string 中缓冲 10000 和 100000 行,但它仍然很慢。
HRESULT FastLoad::Insert()
{
for (int i = 1; i <= m_iCsvColumnCount; i++) // m_iCsvColumnCount is actual number of columns 1 to n
{
if (arrayOfRowVals[i] != NULL_NUM) // arrayOfRowVals is array of double
m_Csvfile << arrayOfRowVals[i]; // std::fstream m_Csvfile.open("/install/FactPOC/Fact.csv", std::ios_base::out | std::ios_base::app);
if (i < m_iCsvColumnCount)
{
m_Csvfile << ",";
}
}
m_Csvfile << "n";
return 0;
}
您一遍又一遍地打开文件。这注定会很慢!!
相反,请打开它一次。为函数提供对可以重用的ifstream
的引用。
并删除缓冲。在你和文件系统之间已经有很多现有的、更好的缓冲层。
相关文章:
- 如何从 CSV 获取数据并将其存储在 C++ 中的表对象中
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 读取和存储 CSV 数据
- 如何将csv中的数据放入c++中的字符串向量中,而绝对没有任何作用
- CSV文件未从缓冲区获取数据
- 错误的值是使用c++从CSV文件数据写入数组
- 将数据从CSV字符串转换为浮点值
- 对来自csv文件的数据执行OpenCV k-means
- std::fstream 需要很长时间才能将大数据写入.csv文件中
- 从第 x 列提取到 y 列,从第 1 行到第 2 行提取 csv 数据 c++
- C++ 读取.csv文件,将数据放入变量中,然后放入对象中
- 如何多次写入.CSV文件并使用C 保留先前的数据
- 用于读取C 中的CSV的数据结构
- 从 CSV 文件读取并尝试将数据加载到由结构组成的矢量中
- 从 csv 文件中获取不同类型的数据,并将其放入 C++ 中的 typedef 结构中
- 尝试从 csv 文件输入大量数据时出错
- C++从 csv 文件中读取,然后将数据分配给类成员
- C++从 CSV 读取的实时数据
- QT自动使用CSV的数据生成按钮
- C :如何将数据作为CSV输出到现有文件中的一组特定单元格