Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: VB.NET vs Other: Вывод Добавлено: 05.02.04 00:59  

Автор вопроса:  CyRax  | Web-сайт: basicproduction.nm.ru | ICQ: 204447456 

Думаю что словесные аргументы не принесли никакой пользы.

Может устроить тест на скорость по нескольким одинаковым алгоритмам?

VB6, VB.NET и PB7

Заодно проверим так ли быстр VB.NET, как пишут в умных статьях и действительно ли так устарел VB6.

Ответить

  Ответы Всего ответов: 22  

Номер ответа: 1
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #1
Добавлено: 05.02.04 03:06

С удовольствием! Сам давно многих уговариваю провести тест, но никто, что-то не торопится.

Вот мой код:

dim i as long,Max as long

dim t1 as single,t2 as single

t1 = timer

Max=2*10^6

do while i<max

      i=i+1

loop

t2=timer

msgbox "Досчитал до ста!!! За"+str$(t2-t1)+" сек."

 

Этот кусок на моём компе (2400/533) в VB 6.0 делается где-то за секунду.

На быстрых языках Borland C++ Builder (не помню какой), VC++ 6.0 цифра Max маловата для оценки. Но, в общем, они досчитали за ту же секунду до 2 миллиардов (для особо одарённых 2*10^9)!!!

Ну так вот хотелось бы, чтобы кто-нибудь провёл сравнительный анализ на всех трёх языках и рассказал нам о результатах.

P.S. Конечно, такой код не может отвечать за все виды операций. Какой-то язык может быть лучше в одних областях и хуже в других. Но!!! VB 6.0 когда родился-то? Я сам не знаю, но, наверное, давно. А VB.Net - недавно. Т.е. VB.Net должен "делать" шоху на всех фронтах. На таком простом тем более...

Ответить

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



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 05.02.04 06:40

Не знаю как у тебя а у меня PB посчитал 10^9 за 130-150 сек, а на встроенном ASM за 25-30 сек. Прада пустой цикл прогнал всего за 12 секунд.

Правда у меня комп после долгой работы тормозить начинает.

Или наСильники тебе набрехали или у меня комп устарел или PB тормозит. Хм. Хотя АСМ по идее и не должен тормозить. Но и алгоритм не чистый правда.

Выкладываю экзешник и исходник на своём сайте.

http://basicproduction.nm.ru/PBSPEEDTEST/

Теперь дело за VB6 и VB.NET

Кто хочет может сделать на C/VC (разумеется под винду) и на MASM32.

Ответить

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



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 05.02.04 07:50

Вот ещё тест на Celeron 1000

While - 80 сек
For - 6 сек
PB АСМ 14 сек

Цикл For скорее всего по другому алгоритму работает.

Ответить

Номер ответа: 4
Автор ответа:
 crackoff



ICQ: 156165990 

Вопросов: 12
Ответов: 229
 Профиль | | #4 Добавлено: 05.02.04 08:10

Посмотрите на это

http://rsdn.ru/article/devtools/perftest.xml

http://rsdn.ru/article/devtools/perftest2.xml

http://rsdn.ru/article/devtools/perftest3.xml

Ответить

Номер ответа: 5
Автор ответа:
 crackoff



ICQ: 156165990 

Вопросов: 12
Ответов: 229
 Профиль | | #5 Добавлено: 05.02.04 08:13

А вообще, это все неправильно. При тестировании не учитывается работа других приложений Windows, загрузка кэша и другие нюансы, из-зи которых система работает медленнее. попробуйте, перезагрузиться, потом запустить тест. Посмотрите результат. потом еще раз, и еще... Работает все медленнее, так ведь?

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 05.02.04 08:31

А VBNet.ru чем хуже тоже может проводить независимые тесты.

Чтобы те не были аксиомой. Там кстати Power Basic'а нет.

 

Я тоже заметил такую хрень. Первый запуск цикла 2^6 на PB показал 0 секунд. А потом уже варьировался от 0.1 до 1. В среднем давал 0.1-0.2 секунды.

Ответить

Номер ответа: 7
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 05.02.04 08:47

Вот ещё тест на P4 2400

Напомню: прогоняется цикл на 2 миллиарда.

PbAsm работает с одной переменной в памяти. По этому скорость получается ниже чем пустой цикл, который работает похоже только с регистрами. А алгоритм PBASM похож на алгоритм Do While. Алгоритм Do While на PB нужно будет ещё пересмотреть. Может я где ошибся.

PbAsm за 2,9375
Do While за 107,6562
For за 1,71875

Ответить

Номер ответа: 8
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 05.02.04 10:53
:)))))))))))))

.NET меня поразил и в этот раз! Ваш код отработал за 0 секунд!
Вот код:

Module Module1
Sub Main()
Dim i As Int32
Dim Max As Int32
Dim t1 As Single
Dim t2 As Single
t1 = Timer
Max = 2 * 10 ^ 8
Do While i < Max
i = i + 1
Loop
t2 = Timer
Console.WriteLine("Досчитал до ста!!! За" + Str$(t2 - t1) + " сек.")
Console.ReadLine()
End Sub
End Module

У меня P4 - 2.66 GHz, 256 оперативы, Win XP Pro, причём ещё 38
процессов портят воздух...

Скомпиленую прогу можно здесь скачать:
http://vbnet.ru/testdotnet.zip

Если поставить Max = 2 * 10 ^ 8, то за секунду отрабатывает.

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #9
Добавлено: 05.02.04 10:58
Кстати, действительно, For работает быстрее.
Вот это вот:

Max = 2 * 10 ^ 9
For i = 1 To Max

Next

моя прога посчитала за 2,5 секунды!

Хотя не пойму, почему: всё равно компилятор VB .NET в ходе
оптимизации кода превращает все циклы For превращает в While...

Ответить

Номер ответа: 10
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #10
Добавлено: 05.02.04 22:05

Почему For работает быстрее мне вроде как понятно. Ведь While каждый раз сравнивает своё условие (по крайней мере в VB 6.0), а For один раз смотрит на условие, а потом уже просто выполняет столько раз сколько было задумано.

Но VB.Net меня, что-то не поразил. Я слышал, что он быстрее С++. А у меня, как я уже говорил за секунду до 2*10^9(!!!) Это на моём-то 2400 на 533 частоте! У Павла-то наверняка его 2.66 прёт на 800. Т.е. проц гораздо быстрее моего, а результаты хуже, чем на С++. Обидна! Единственным утешением (хотя и не маленьким - чего уж там) остаётся то, что в VB.Net, как я понимаю работа со стороками поддерживается на должном уровне.

Девятикилограммовый экзешник CyRax'а у меня отработал за 3,8.

Ответить

Номер ответа: 11
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #11
Добавлено: 06.02.04 01:48

Обновил стратничку с тестом и программы.

Зайдите на

http://basicproduction.nm.ru/PBSPEEDTEST/

====

2 Павел выложи линк на исходник и FW

2 Neco выложи линк или пошли на cyrax@hotmail.ru исходник и экзешник.

Ответить

Номер ответа: 12
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #12
Добавлено: 06.02.04 02:01

2 Павел.

Если не трудно напиши

Процессор, время Do While, время For Next.

---

То что Neco возможно пришлёт я и сам могу потестить, а вот твой затруднительно. Но всё равно исходник должен прилагаться.

Ответить

Номер ответа: 13
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #13
Добавлено: 06.02.04 02:32

Уважаемые читатели этого вопроса.

Кому интересно было протестировать - пишитие пожалуйста результаты здесь:

---

Язык, Процессор, время Do While, время For Next

---

У кого есть интересная тема для теста оставляйте здесь.

Ответить

Номер ответа: 14
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #14
Добавлено: 06.02.04 03:41

Ещё тест на Pentium 3 933

Цикл Do While

PB7: 72-75 секунд.

PB ASM: 6.4 секунды.

VB6: отказались.

===

Цикл For Next

PB7: 6.5 секунд.

VB6: 168 секунд.

 

Ответить

Номер ответа: 15
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #15
Добавлено: 06.02.04 09:13
ИМХО, всё это чушь.
Для нормальных тестов надо занять этим одного человека, чтобы
поставить всех в равные условия Hardware и Software.

Ответить

Страница: 1 | 2 |

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



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