Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: HDD: чтение и запись Добавлено: 21.03.09 01:15  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
Недавно спрашивал о создании "бенчмарка"
В тесте ЖД создаю файл, делаю 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
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #1 Добавлено: 21.03.09 02:01
Нужен прямой доступ.
Хотя может ктото знает другой способ.
Стандартные методы обращения кэшируются системой.
В первый раз этот бенчмарк может и покажет чтото, но дальше ерунда,
перезагрузишь винду и опять тоже.

Ответить

Номер ответа: 2
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 21.03.09 02:19
Я бы попробовал читать какойнить большой файл и посчитать kbps.

Ответить

Номер ответа: 3
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #3 Добавлено: 21.03.09 04:03
:) Winand жжот, даже исходничек чиркнул :)))

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 21.03.09 11:48
Нестабильные результаты - это потому что ты под виндой и в ring3. Либо тебе писать драйвер уровня ядра, либо приложение под dos. Почему?

На работу твоего приложения оказывает влияние активность всего программного окружения в единицу времени. Одновременно с твоим бенчмарком другие программы и сама система обращаются (читают, пишут) к винту. Как сказал Smith, системное кэширование тоже может влиять на результаты.

Тестирование устройств хранения проводят с несколькими файлами разных размеров на запись и чтение (иногда на копирование, перемещение, удаление) и по много циклов на каждый файл, после чего результаты суммируют, взвешивают, обообщают. Почитай статьи по тестированию накопителей, например на http://www.3dnews.ru/

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам