Страница: 1 |
Вопрос: HDD: чтение и запись | Добавлено: 21.03.09 01:15 |
Автор вопроса: ![]() |
Недавно спрашивал о создании "бенчмарка"
В тесте ЖД создаю файл, делаю 5 его копий и убиваю их. Но результаты часто сильно колеблются по времени. На это влияет ОС? Вообще подскажите, как изменить подход к задаче, чтобы более-менее стабильные результаты получать Private Function testRdWr(ByVal path As String) As Long
On Error GoTo 1: Dim file As Integer, i As Long, dat As String * 1024, tick As Long, tick_d As Long Print ">> Тест 2: чтение/запись" tick = GetTickCount For i = 1 To 102400 Next i For i = 1 To 5 Next i tick_d = GetTickCount - tick Print , "Выполнение пустого цикла:", tick_d DoEvents file = FreeFile Open path & "bench" For Binary Access Read Write As file dat = Space(1024) tick = GetTickCount For i = 1 To 51200 Put file, , dat Next i Do Until EOF(file) Get file, , dat Loop Close file For i = 1 To 5 Call FileCopy(path & "bench", path & "bench" & i) Call Kill(path & "bench" & i) Next i Call Kill(path & "bench") tick = GetTickCount - tick - tick_d Print , "Время выполнения:", tick testRdWr = tick Exit Function 1: MsgBox "error in testRdWr() function" End Function |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #1 | Добавлено: 21.03.09 02:01 |
Нужен прямой доступ.
Хотя может ктото знает другой способ. Стандартные методы обращения кэшируются системой. В первый раз этот бенчмарк может и покажет чтото, но дальше ерунда, перезагрузишь винду и опять тоже. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #2 | Добавлено: 21.03.09 02:19 |
Я бы попробовал читать какойнить большой файл и посчитать kbps. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #3 | Добавлено: 21.03.09 04:03 |
![]() ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 21.03.09 11:48 |
Нестабильные результаты - это потому что ты под виндой и в ring3. Либо тебе писать драйвер уровня ядра, либо приложение под dos. Почему?
На работу твоего приложения оказывает влияние активность всего программного окружения в единицу времени. Одновременно с твоим бенчмарком другие программы и сама система обращаются (читают, пишут) к винту. Как сказал Smith, системное кэширование тоже может влиять на результаты. Тестирование устройств хранения проводят с несколькими файлами разных размеров на запись и чтение (иногда на копирование, перемещение, удаление) и по много циклов на каждый файл, после чего результаты суммируют, взвешивают, обообщают. Почитай статьи по тестированию накопителей, например на http://www.3dnews.ru/ |
Страница: 1 |
|