Общий обзор заключается в том, что метод file.write () файла CFile вызывается для каждого отдельного целочисленного значения данных (строка 9) вместе со строкой 12, где я записываю запятую в файл.
Это означает, что для 327 680 целых входных данных существует 2 * 327 680 = 655 36060 вызовов file.write ().Код очень медленный из-за этого, и в результате код занимает 3 секунды, чтобы создать один CSV-файл.Как я могу повысить эффективность моего кода?
Примечание: я не могу изменить какие-либо объявления кода.Я должен использовать CFile.Кроме того, pSrc имеет тип uint_16_t и содержит данные, которые я хочу сохранить в файле .csv.Диапазон данных составляет от 0 до 3000 целых значений.
1 CFile file;
2 int mWidth = 512;
3 int mHeight = 640;
4 UINT i = 0;
5 char buf[80];
6 UINT sz = mHeight * mWidth; //sz = 327,680
7 while (i < sz) {
8 sprintf_s(buf, sizeof(buf), "%d", pSrc[i]);
9 file.Write(buf, strlen(buf));
10 i++;
11 if (i < sz)
12 file.Write(",", 1);
13 if (i % mWidth == 0)
14 file.Write("\r\n", 2);
15 }
Все значения выводятся в файл 640x512 .csv, содержащий целые числа, представляющие градусы Цельсия.