Скорость

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Скорость

Сообщение 785412 » 25.08.2009 (Вт) 11:22

Как определить скорость чтения из файла? Или как создать секундомер, для того, чтобы засеч чтение 1кб данных? Затем расчитать :D

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Скорость

Сообщение Nord777 » 25.08.2009 (Вт) 13:05

Public Class Stopwatch
Inherits System.Object
является членом: System.Diagnostics
Сводка:
Предоставляет набор методов и средств, которые можно использовать для точного измерения затраченного времени.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 14:19

Мне бы желательно дать функцию, которая возвращает скорость... :D А так я с таймером пробовал...

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 14:20

с временем(таймером) я розабрался :)

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 14:43

Может засекать за скока времени читается 1кб, затем расчитывается скорость..и.тд...НО почемуто, у мя то 1000кб/сек то 333,(3) то вообще - бесконечность :bounce: :lol: :compress:

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Скорость

Сообщение iGrok » 25.08.2009 (Вт) 14:47

785412 писал(а):Может засекать за скока времени читается 1кб, затем расчитывается скорость..и.тд...НО почемуто, у мя то 1000кб/сек то 333,(3) то вообще - бесконечность :bounce: :lol: :compress:

Потому, что 1кб читается ОЧЕНЬ быстро. Вот 100Мб - это да. На них уже и скорость позамерять можно.
label:
cli
jmp label

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 14:50

думаю 1мб-10мб пойдет?

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 14:52

а, и как правильно считывать текст из файла? монатак?:
dim str as string=my.computer.filesystem.readalltext
dim st as string=str
???

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 15:11

25000КБ/СЕК реально??

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Скорость

Сообщение Williams » 25.08.2009 (Вт) 15:35

Пользуйся на здоровье:

Код: Выделить всё
Imports System.Runtime.InteropServices

Namespace Performance
    Friend Structure PerfCounter
        Private NotInheritable Class NativeMethods
            Private Sub New()
            End Sub

            <DllImport("kernel32.dll", SetLastError:=True)> _
            Friend Shared Function QueryPerformanceCounter(ByRef lpPerformanceCount As Long) _
                As <MarshalAs(UnmanagedType.Bool)> Boolean
            End Function

            <DllImport("kernel32.dll", SetLastError:=True)> _
            Friend Shared Function QueryPerformanceFrequency(ByRef frequency As Long) As <MarshalAs(UnmanagedType.Bool)> _
                Boolean
            End Function
        End Class


        Private mStart As Long

        Public Sub Start()
            mStart = 0
            NativeMethods.QueryPerformanceCounter(mStart)
        End Sub

        Public Function Finish() As Double
            Dim mFinish As Long = 0, mFreq As Long = 0
            NativeMethods.QueryPerformanceCounter(mFinish)
            NativeMethods.QueryPerformanceFrequency(mFreq)
            Return ((mFinish - mStart) / mFreq)
        End Function
    End Structure

End Namespace
И вы думаете, что вас оставят в живых после прочтения этого поста?

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 15:47

Как я понял надо юзать так:
Dim s As Performance.PerfCounter
Код: Выделить всё
Dim s As Performance.PerfCounter
        s.Start()
        Dim f = s.Finish()
        MsgBox(f)

Тока в каких единицах он возвращает значение?

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: Скорость

Сообщение 785412 » 25.08.2009 (Вт) 16:26

а почему при первом обращении к функции число=0,003...., а при втором - 3,599965...??

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Скорость

Сообщение Nord777 » 25.08.2009 (Вт) 16:28

25000КБ/СЕК реально??
Да, реально.
25000кб / 1024 = 24.4 мб
такая скорость есть даже у некоторых флэшек.

Как я понял надо юзать так:
Dim s As Performance.PerfCounter
Не заморачивайся.
StopWatch это удобная надстройка над QueryPerformanceCounter.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Скорость

Сообщение Williams » 25.08.2009 (Вт) 16:46

785412 писал(а):Как я понял надо юзать так:
Dim s As Performance.PerfCounter
Код: Выделить всё
Dim s As Performance.PerfCounter
        s.Start()
        Dim f = s.Finish()
        MsgBox(f)

Тока в каких единицах он возвращает значение?


MessageBox.Show (s.Finish.ToString("0.00") - обычно этого достаточно. Значение в секундах.
И вы думаете, что вас оставят в живых после прочтения этого поста?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Скорость

Сообщение iGrok » 25.08.2009 (Вт) 20:30

785412 писал(а):25000КБ/СЕК реально??

Более чем.
Если обычный винт - то около 40-80МБ/сек. Если хороший SATA - то может и до 100-120.
Если стрип-RAID, то реально даже 300000кБ/сек.
label:
cli
jmp label


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 18

    TopList