Я пытаюсь написать код, который работает как на Linux, так и на Win32. Самое заметное различие, которое я нахожу между ними (в моем коде), это производительность fopen()
.
Следующий код занимает 5 секунд в моей Ubuntu, и тот же код занимает более 100 секунд в Windows XP. Я хотел бы отметить, что Ubuntu - это VM, а XP - на реальной машине.
time_t start = time(NULL);
for(int i=0; i < 100000; ++i){
FILE *fp = fopen("a.txt", "a");
if (fp != NULL)
{
fprintf(fp, "Hello World");
fclose(fp);
}
}
time_t end = time(NULL);
printf("\n It took %d seconds \n", end-start);
Очевидно, fopen()
является причиной этой разницы. Я хочу знать, почему это такая большая разница?