Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

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

 

  Вопрос: Небольшой тест скорости PB7 vs VB6 Добавлено: 29.03.05 19:07  

Автор вопроса:  Macronix | Web-сайт: http://x250.net/ | ICQ: 170650558 

Ответить

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

Номер ответа: 16
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #16
Добавлено: 30.03.05 16:52
Ну а асьму-то нафиг сюда приплетать!? Тогда уж лучше PB chfdybnm c VC компилятором, оно ближе выйдет...

Ответить

Номер ответа: 17
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #17
Добавлено: 30.03.05 18:23
Ассемблер как раз в любых сравнительных тестах на производительность нужен, хотя бы для того, чтобы сравнивать не только на уровне "что круче", но и на уровне оптимизации и мусора, делаемых компилятором. Т.е. если имеется инфо типа:
tools 1 - 0.5 сек; tools 2 - 0.25 сек
то можно решить, что код, создаваемый tools 2 в 2 раза лучше, зато вот если добавить еще assembler - 0.2 секунды, тогда сразу станет ясно, что не в 2, а в 6 :)

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #18
Добавлено: 30.03.05 18:27
 Не, ну я показал преимущества PowerBasic. Если хочет показать преимущества VB - пусть напишет самый быстрый алгоритм на VB6, а я самый быстрый на PB7. Задача разумеется одинаковая.
 Ну как, согласен?

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #19
Добавлено: 30.03.05 18:29
Ну я имел ввиду для сравнения. Сравним наши алгоритмы у кого быстрее получится.

Ответить

Номер ответа: 20
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #20
Добавлено: 30.03.05 18:35
Зачем доказывать очевидное, что уже сотни раз писАлось ? Но бывают и случаи когда PB проигрывает... Пусть и редко ;)

А использование в PB COM - так же неудобно как в том же ассембоере, или где еще...

ЗЫ
Про ассемблерные вставки, если очень надо, то каждый из нас знает что изрядно поизвращавшись можно написать и на VB "ассемблерную вставку", так что не имеет смысла сравнивать ассемблер :)

ЗЗЫ
Лучше давайте доказывать что PB отстает от ассемблерных прог :)) Оно и то куда интереснее :) Что!? Это очевидно!? А не тот же случай и здесь ;) ?

Ответить

Номер ответа: 21
Автор ответа:
 Macronix



ICQ: 170650558 

Вопросов: 12
Ответов: 46
 Web-сайт: http://x250.net/
 Профиль | | #21
Добавлено: 30.03.05 18:50
2 CyRax

Я не пытался показывать преимущеста того или иного компилятора, я знал что PB теоретически быстрее VB, просто натолкнулся на подобную "непонятку" и выложил код, чтобы вы помогли найти мою ошибку.

P.S.
Попробую сегодня дома собрать пару тестов.
На счет задачи, давай попробуем, только на одном PB.

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #22
Добавлено: 30.03.05 18:52
ЗЗЗЫ: Давайте лучше не будем умничать без меры ;)

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #23
Добавлено: 30.03.05 18:55
x-bond,
 Давай, предлагай задачу.

Ответить

Номер ответа: 24
Автор ответа:
 Macronix



ICQ: 170650558 

Вопросов: 12
Ответов: 46
 Web-сайт: http://x250.net/
 Профиль | | #24
Добавлено: 30.03.05 19:04
А разве здесь кто-то умничает? :)
Что-то мне ни одной нормальной темы в голову не приходит. Ну, давай попробуем сжать определенную BMP-шку методом RLE

Ответить

Номер ответа: 25
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #25
Добавлено: 30.03.05 19:08
x-bond, это он так недвусмысленно намекнул на меня :)) я ему тут все варенье порчу :) своими словами о очевидности...

Ответить

Номер ответа: 26
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #26 Добавлено: 30.03.05 22:56
Кстати, конструкцию
Select Case
можно заменить на
On Goto

И при этом получить выигрыш в скорости, вот пример:

#Compile Exe
#Dim All
#Register None

Function PBMain As Long
  Dim x&, Starttime!, EndTime!,Loops&,Maximum&
  Dim y%
  Maximum = 1000000
  StartTime! = Timer
  For Loops = 1 To Maximum
    For x = 1 To 10
      Select Case X
        Case 1:GoTo SelectCaseBranch
        Case 2:GoTo SelectCaseBranch1
        Case 3:GoTo SelectCaseBranch2
        Case 4:GoTo SelectCaseBranch3
        Case 5:GoTo SelectCaseBranch4
        Case 6:GoTo SelectCaseBranch5
        Case 7:GoTo SelectCaseBranch6
        Case 8:GoTo SelectCaseBranch7
        Case 9:GoTo SelectCaseBranch8
        Case 10:GoTo SelectCaseBranch9
      End Select
SelectCaseBranch:
SelectCaseBranch1:
SelectCaseBranch2:
SelectCaseBranch3:
SelectCaseBranch4:
SelectCaseBranch5:
SelectCaseBranch6:
SelectCaseBranch7:
SelectCaseBranch8:
SelectCaseBranch9:
    Next
  Next
  EndTime! = Timer
  MsgBox "SELECT CASE time"+Str$(EndTime! - StartTime!)

'-----------------------------------------------------------------
  StartTime! = Timer
  For loops = 1 To Maximum
    For x = 1 To 10
      On x GoTo GoToBranch,GoToBranch1,GoToBranch2,GoToBranch3,GoToBranch4,GoToBranch5,GoToBranch6,GoToBranch7,GoToBranch8,GoToBranch9
GoToBranch:
GoToBranch1:
GoToBranch2:
GoToBranch3:
GoToBranch4:
GoToBranch5:
GoToBranch6:
GoToBranch7:
GoToBranch8:
GoToBranch9:
    Next

  Next
  EndTime! = Timer
  MsgBox "    ON GOTO time"+Str$(EndTime! - StartTime!)

'-----------------------------------------------------------------
  StartTime! = Timer
  For Loops = 1 To Maximum
    For x = 1 To 10
      If x = 1 Then
         GoTo IfThenBranch
      ElseIf x = 2 Then
         GoTo IfThenBranch1
      ElseIf x = 3 Then
         GoTo IfThenBranch2
      ElseIf x = 4 Then
         GoTo IfThenBranch3
      ElseIf x = 5 Then
         GoTo IfThenBranch4
      ElseIf x = 6 Then
         GoTo IfThenBranch5
      ElseIf x = 7 Then
         GoTo IfThenBranch6
      ElseIf x = 8 Then
         GoTo IfThenBranch7
      ElseIf x = 9 Then
         GoTo IfThenBranch8
      ElseIf x = 10 Then
         GoTo IfThenBranch9
      End If
IfThenBranch:
IfThenBranch1:
IfThenBranch2:
IfThenBranch3:
IfThenBranch4:
IfThenBranch5:
IfThenBranch6:
IfThenBranch7:
IfThenBranch8:
IfThenBranch9:
    Next
  Next
  EndTime! = Timer
  MsgBox "    IF THEN time"+Str$(EndTime! - StartTime!)
  Exit Function

End Function

Ответить

Номер ответа: 27
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #27 Добавлено: 31.03.05 02:08
cresta, подскажи какой отладчик/дизассемблер используешь

Ответить

Номер ответа: 28
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #28 Добавлено: 31.03.05 09:02
OllyDbg
http//home.t-online.de/home/ollydbg

Ответить

Номер ответа: 29
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #29 Добавлено: 31.03.05 09:45
alex, твой пример с ON x GOTO притянут за уши и некорректен.
После каждого GoToBranch: вставь переход на следующую итерацию (чтобы пропустить выполнение по остальным меткам). Вот тогда и получится имитация Select Case. Правда скорость при этом упадёт вдвое. Но это будет полноценный заменитель Select-Case.
А вообще из этих трех видов ветвления самый быстрый If-Elseif-Endif

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #30
Добавлено: 31.03.05 10:52

Ну, давай попробуем сжать определенную BMP-шку методом RLE

 Не знаком. Давай лучше напишем модуль для работы с DBF-ками на PB. Если не знаешь принципа - на сайте есть мой пример для VB6. Там всё просто.
 Если не хочешь - давай что нибудь попроще. У меня сейчас времени совсем нет. На работе 1С, а дома аддон для PBEdit пишу.

Ответить

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

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



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