Я написал функцию C ++ (Rcpp) для чтения и заполнения многомерной матрицы из файла, содержащего только числа.Когда я запускаю его в Linux, он работает нормально и довольно быстро.Тем не менее, тот же код гораздо медленнее (в 200 раз) на машине с Windows с той же спецификацией.Кто-нибудь может определить проблему?
void read_ed0moins_lut_(const char *filename, float downward_irradiance_table_as_output[NBWL][NTHETAS][NO3][NTAUCLD][NALB]) {
std::ifstream infile;
infile.open(filename);
float tmp;
for (int theta = 0; theta < NTHETAS; theta++) {
for (int ozone = 0; ozone < NO3; ozone++) {
for (int taucl = 0; taucl < NTAUCLD; taucl++) {
for (int albedo = 0; albedo < NALB; albedo++) {
for (int wavelength = 0; wavelength < NBWL; wavelength++) {
infile >> tmp; // This line is very slow on Windows
downward_irradiance_table_as_output[wavelength][theta][ozone][taucl][albedo] = tmp;
}
}
}
}
}
// Close file
infile.close();
}