Штраф за доступ к файлу QFileInfo
В соответствии с QFileInfo
документация:
Некоторые из
QFileInfo
Функции запрашивают файловую систему, но по причинам производительности некоторые функции работают только с самим именем файла.
Тем не менее, я все еще не уверен, какие методы обращаются к самому файлу под капотом, а какие нет. Например:
for (int i = 0; i < 100000; ++i) {
QFileInfo fi("path/to/my/file");
qDebug() << fi.fileName();
}
Есть ли у этого кода штраф за следующее?
for (int i = 0; i < 100000; ++i) {
QString fileName = QString("path/to/my/file").split('/').last();
qDebug() << fileName;
}
Потому что я не уверен, какой QFileInfo
методы (или даже конструктор) обращаются к самому файлу.
Конечно, я могу провести некоторое профилирование, и, вероятно, это будет преждевременная оптимизация с точки зрения скорости кода, однако я беспокоюсь о жестких дисках. Я знаю о QFileInfo
кэширование, так что представьте, что я постараюсь получить имя файла для разных файлов.