Следуя ответу , который я принял , я провел некоторый тест, чтобы найти ответ на свой вопрос
Я создал папку с 3000 файлами, она имитирует плоскую структуру,Затем я создал папку, разделенную на 12 подпапок, в каждой по 250 файлов, они имитировали глубокую древовидную структуру.
Затем я написал в vb6 простой код для чтения 100 файлов из каждой папки и копирования двоичных данных вмассив.Имя файла было создано случайно.Я повторил цикл 10 раз и вычислил среднее время.
Вот код для плоской папки.
dtTot = 0
For j = 1 To 10
dtStart = GetTickCount
For i = 1 To 100
iFileNum = FreeFile
iNr = Int(2999 * Rnd + 1)
sFilename = sROOT & "2010\" & "raw (" & CStr(iNr) & ").dat"
iNCount = (FileLen(sFilename) / 4
ReDim lVetRawData(iNCount)
Open sFilename For Binary Access Read As #iFileNum
Get #iFileNum, , lVetRawData
Close iFileNum
Next i
dtEnd = GetTickCount
dtTot = dtTot + dtEnd - dtStart
Next j
Я получаю следующий результат:
глубокая папка включенаNTFS 162,5 мс
плоская папка в NTFS 196,9 мс
глубокая папка на NAS 280,2 мс
плоская папка на NAS 340,7 мс
, где NTFS-сервер - это компьютер с Windows 2003 Pentium, а NAS - Synology DS210j (на основе linux)
Я повторил тест в различных сетевых условиях и получил почти одинаковое значение.
Надеюсь, я не допустил логической ошибки, и это не точное измерение, но тест воспроизводит именно тот тип доступа, который я имею к своему коду: во всех случаях глубокая структура папок оказывается быстрее в моей тестовой среде.