Первый к вашему актуальному вопросу - «C» не имеет опций отладки, связанных с производительностью ввода-вывода или любым другим видом производительности.Ваша IDE, отладчик или ОС могут, хотя, боюсь, я не знаю подробностей.
Глупый вопрос - все ли циклы дают одинаковое количество вывода?Возможно, первые 500 являются маленькими.
Возможно, 500 циклов - это время, необходимое для заполнения кеша записи на диск (на одном или нескольких уровнях - процесс, ОС, оборудование), и после этого программаI / O связан.На самом деле не могу сказать, вероятно ли это, не зная количества задействованных данных.
Попробуйте записать 1 ГБ данных в файл и рассчитайте время, чтобы получить очень приблизительное представление о том, какая приемлемая скорость вероятна.Если 0,07 секунды на пару, умноженное на количество данных на пару, работает быстрее, чем эта скорость, то ваша первоначальная быстрая скорость - это единственное специальное предложение: диск рано или поздно должен будет восстановиться.
Кроме того, подумайте больше о том, что на самом деле делает ваш вывод , что вы не детализируете.Писать по прямой?Ищу туда и обратно?Вставить записи в упорядоченный массив на диске, чтобы при каждой записи приходилось перемещать в среднем до 50% записанных данных?Разные шаблоны доступа, очевидно, имеют очень разную ожидаемую производительность с течением времени.
Я сосредоточен на выводе, а не на вводе, исходя из предположения, что кэш-память чтения бесполезна, так что ваши скорости чтения будут достаточно постоянными во всем.Это не обязательно так, но если компьютер не может предсказать ваши схемы доступа, это довольно хорошее приближение.
Даже в этом случае 300000 * 5 секунд - это более 400 часов.Этого достаточно времени для любого простого смертного компьютера, чтобы записать весь свой жесткий диск много раз.Так что вам нужно сделать что-то довольно странное, чтобы сырая скорость записи была для этого единственной.