Страница: 1 | 2 | 3 |
Вопрос: Небольшой тест скорости PB7 vs VB6
Добавлено: 29.03.05 19:07
Автор вопроса: Macronix | Web-сайт:
Ответы
Всего ответов: 44
Номер ответа: 16
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #16
Добавлено: 30.03.05 16:52
Ну а асьму-то нафиг сюда приплетать!? Тогда уж лучше PB chfdybnm c VC компилятором, оно ближе выйдет...
Номер ответа: 17
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #18
Добавлено: 30.03.05 18:27
Не, ну я показал преимущества PowerBasic. Если хочет показать преимущества VB - пусть напишет самый быстрый алгоритм на VB6, а я самый быстрый на PB7. Задача разумеется одинаковая.
Ну как, согласен?
Номер ответа: 19
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #19
Добавлено: 30.03.05 18:29
Ну я имел ввиду для сравнения. Сравним наши алгоритмы у кого быстрее получится.
Номер ответа: 20
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #20
Добавлено: 30.03.05 18:35
Зачем доказывать очевидное, что уже сотни раз писАлось ? Но бывают и случаи когда PB проигрывает... Пусть и редко
А использование в PB COM - так же неудобно как в том же ассембоере, или где еще...
ЗЫ
Про ассемблерные вставки, если очень надо, то каждый из нас знает что изрядно поизвращавшись можно написать и на VB "ассемблерную вставку", так что не имеет смысла сравнивать ассемблер
ЗЗЫ
Лучше давайте доказывать что PB отстает от ассемблерных прог ) Оно и то куда интереснее Что!? Это очевидно!? А не тот же случай и здесь ?
Номер ответа: 21
Автор ответа:
Macronix
ICQ: 170650558
Вопросов: 12
Ответов: 46
Web-сайт:
Профиль | | #21
Добавлено: 30.03.05 18:50
2 CyRax
Я не пытался показывать преимущеста того или иного компилятора, я знал что PB теоретически быстрее VB, просто натолкнулся на подобную "непонятку" и выложил код, чтобы вы помогли найти мою ошибку.
P.S.
Попробую сегодня дома собрать пару тестов.
На счет задачи, давай попробуем, только на одном PB.
Номер ответа: 22
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #22
Добавлено: 30.03.05 18:52
ЗЗЗЫ: Давайте лучше не будем умничать без меры
Номер ответа: 23
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #23
Добавлено: 30.03.05 18:55
x-bond,
Давай, предлагай задачу.
Номер ответа: 24
Автор ответа:
Macronix
ICQ: 170650558
Вопросов: 12
Ответов: 46
Web-сайт:
Профиль | | #24
Добавлено: 30.03.05 19:04
А разве здесь кто-то умничает?
Что-то мне ни одной нормальной темы в голову не приходит. Ну, давай попробуем сжать определенную BMP-шку методом RLE
Номер ответа: 25
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #25
Добавлено: 30.03.05 19:08
x-bond, это он так недвусмысленно намекнул на меня ) я ему тут все варенье порчу своими словами о очевидности...
Номер ответа: 26
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #26
Добавлено: 30.03.05 22:56
Кстати, конструкцию
И при этом получить выигрыш в скорости, вот пример:
#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-сайт:
Профиль | | #30
Добавлено: 31.03.05 10:52
Ну, давай попробуем сжать определенную BMP-шку методом RLE
Не знаком. Давай лучше напишем модуль для работы с DBF-ками на PB. Если не знаешь принципа - на сайте есть мой пример для VB6. Там всё просто.
Если не хочешь - давай что нибудь попроще. У меня сейчас времени совсем нет. На работе 1С, а дома аддон для PBEdit пишу.