«ptr» указывает на файл, отображенный в памяти (wavefront .obj)
const char* ptr = data;
while (*ptr != '\0') {
while (*ptr != '\0') {
if (*ptr == 'v') {
ptr++;
if (*ptr == ' ') {
vertex_count++;
ptr += 27;
}
else if (*ptr == 't') {
tex_coord_count++;
ptr += 18;
}
else if (*ptr == 'n') {
normal_count++;
ptr += 21;
}
}
else if (*ptr == 'f') {
ptr++;
if (*ptr == ' ') {
index_count += 3;
ptr += 17;
}
}
ptr++;
}
}
printf("v == %i\nvt == %i\nvn == %i\nf == %i\n", vertex_count, tex_coord_count, normal_count, index_count);
Для выполнения этой функции требуется от 490 мс до 520 мс, а
const char* ptr = data;
while (*ptr != '\0') {
if (*ptr == 'v') {
ptr++;
if (*ptr == ' ') {
vertex_count++;
ptr += 27;
}
else if (*ptr == 't') {
tex_coord_count++;
ptr += 18;
}
else if (*ptr == 'n') {
normal_count++;
ptr += 21;
}
}
else if (*ptr == 'f') {
ptr++;
if (*ptr == ' ') {
index_count += 3;
ptr += 17;
}
}
ptr++;
}
printf("v == %i\nvt == %i\nvn == %i\nf == %i\n", vertex_count, tex_coord_count, normal_count, index_count);
начинается с 580 мс идоходит до 610мс.Есть ли какая-то причина для этого?
Я использую VS2017 с конфигурацией выпуска x64 для отладчика, и результаты выглядят довольно согласованными.