forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Blitz3d C++ или обычный Basic? (http://forum.boolean.name/showthread.php?t=8151)

ABTOMAT 06.04.2009 01:07

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102920)
сравните

Код:

Dim a(1000)
For i = 1 To 1000000
a(i Mod 1000) = i/1000
Next

и
Код:

int a[1000];
for(int i=0;i<1000000;++i)
a[i%1000] = i/1000;

что будет быстрее, а почему? если компилируется в одинаковый исполняемый код?
со скрип тамшиной я наверное погорячился, но исполняемый код генерируемый блицом несколько медленнее аналогичного кода генерируемого компилятором плюсов.

blitz дает 43 фпс
C++ дает 800 фпс.

Ладно, мы поняли

Блиц отстой,
Бэйсик - параша,
Сяхе - хой,
Россия наша!

Venom2 06.04.2009 04:01

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102920)
сравните

Код:

Dim a(1000)
For i = 1 To 1000000
a(i Mod 1000) = i/1000
Next

и
Код:

int a[1000];
for(int i=0;i<1000000;++i)
a[i%1000] = i/1000;

что будет быстрее, а почему? если компилируется в одинаковый исполняемый код?
со скрип тамшиной я наверное погорячился, но исполняемый код генерируемый блицом несколько медленнее аналогичного кода генерируемого компилятором плюсов.

blitz дает 43 фпс
C++ дает 800 фпс.

Компилятор блица не оптимизирующий, отключи оптимизацию у сишного компилятора и получишь практически одинаковый генерируемый код:
Блиц:
Код:

;For i = 1 To 1000000
00D9009A: 30304439303039    mov [ebp-04h], 00000001h
00D900A1: 3030443930        jmp 00D900E6h
;x = i / 1000
00D900A6: 303044            mov eax, [ebp-04h]
00D900A9: 3030443930        mov ecx, 000003E8h
00D900AE: 30                cdq
00D900AF: 3030              idiv ecx
;y = i Mod 1000
00D900B1: 303044            mov [ebp-08h], eax
00D900B4: 303044393030      sub esp, 00000008h
00D900BA: 303044            mov ebx, [ebp-04h]
00D900BD: 303044            mov [esp], ebx
00D900C0: 3030443930304330  mov [esp+04h], 000003E8h
00D900C8: 3030              mov eax, ebx
00D900CA: 3030443930        call 00946C20h
;a(y) = x
00D900CF: 3030              mov ebx, eax
00D900D1: 303044            mov eax, [ebp-08h]
00D900D4: 303044            shl ebx, 02h
00D900D7: 303044393030      add ebx, [00D9010Ch]
00D900DD: 3030              mov [ebx], eax
;Next
00D900DF: 30304439303044    add [ebp-04h], 00000001h
00D900E6: 30304439303045    cmp [ebp-04h], 000F4240h
00D900ED: 303044393030      jle 00D900A6h

VS9 без оптимизаций:
Код:

;for(int i=0;i<1000000;++i)
00005c745fc00000000  mov DWORD PTR _i$2529[ebp], 0
0000ceb09            jmp SHORT $LN3@main
                      $LN2@main:
0000e8b45fc          mov eax, DWORD PTR _i$2529[ebp]
0001183c001          add eax, 1
000148945fc          mov DWORD PTR _i$2529[ebp], eax
                      $LN3@main:
00017817dfc40420f00  cmp DWORD PTR _i$2529[ebp], 000f4240H
0001e7d21            jge SHORT $LN4@main
;x = i / 1000;
000208b45fc          mov eax, DWORD PTR _i$2529[ebp]
0002399              cdq
00024b9e8030000      mov ecx, 000003e8H
00029f7f9            idiv ecx
y = i % 1000
0002b8bc8            mov ecx, eax
0002d8b45fc          mov eax, DWORD PTR _i$2529[ebp]
0003099              cdq
00031bee8030000      mov esi, 000003e8H
00036f7fe            idiv esi
;a[y] = x
00038890c9500000000  mov DWORD PTR ?a@@3PAHA[edx*4], ecx
;}
0003febcd            jmp SHORT $LN2@main
                      $LN4@main:

ЗЫ
И кстати да, то что в блице нет никакой скрипт-машины еще на старом форуме выяснили.

Ну и еще блиц страдает тем что большинство мат. операций вынесено в функции и их код не инлайнится.

HolyDel 06.04.2009 04:06

Ответ: Blitz3d C++ или обычный Basic?
 
а нафига мне VS9 без оптимизации если я могу использовать VS9 с оптимизацией?

кстати, как ты получил ASM листинг блица?

Venom2 06.04.2009 04:15

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102934)
а нафига мне VS9 без оптимизации если я могу использовать VS9 с оптимизацией?

Можешь, но это я к тому что твое сравнение некорректно.
Цитата:

Сообщение от HolyDel (Сообщение 102934)
кстати, как ты получил ASM листинг блица?

Дизассемблировал

HolyDel 06.04.2009 04:45

Ответ: Blitz3d C++ или обычный Basic?
 
а как корректно? обрубить половину возможностей сишного компилятора?

это все равно что сравнивать самолет и машину по скорости, но сказать чтобы самолет от земли не отрывался, а то нечестно, машина то на земле.

Venom2 06.04.2009 05:09

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102936)
а как корректно? обрубить половину возможностей сишного компилятора?

это все равно что сравнивать самолет и машину по скорости, но сказать чтобы самолет от земли не отрывался, а то нечестно, машина то на земле.

:) У этих компиляторов разные весовые категории, сравнивать не имеет смысла, и так понятно что мс компилятор лучше за счет оптимизатора.

FDsagizi 06.04.2009 09:21

Ответ: Blitz3d C++ или обычный Basic?
 
Т.к. блиц изночально был сделан под свой язык, и он достаточно стар и не развиваеться на с++ юзать блиц глупо!

на с++ есть куча других более вменяемых двигов.

Aceton 06.04.2009 10:33

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от HolyDel (Сообщение 102920)
blitz дает 43 фпс
C++ дает 800 фпс.

да по большему счету сдк в итоге быстрее выйдет в разы, таких отличающихся по производительности мест полно

ч.т.д.?:crazy:


Цитата:

Сообщение от FDsagizi (Сообщение 102944)
Т.к. блиц изночально был сделан под свой язык, и он достаточно стар и не развиваеться на с++ юзать блиц глупо!

на с++ есть куча других более вменяемых двигов.

а помоему не глупо, зато можно его выжать на полную +ОПП на С++ удобнее чем код блица обычный с кучей функций

jimon 06.04.2009 11:17

Ответ: Blitz3d C++ или обычный Basic?
 
Aceton
ты можешь наконец-то отличить движок от языка ?
"движок" blitz3d sdk так сказать используется в языке blitz3d
потому скорость работы движка что в blitz3d что в C++ ОДИНАКОВАЯ
а вот скорость выполнения твоего кода - разная

Aceton 06.04.2009 12:26

Ответ: Blitz3d C++ или обычный Basic?
 
jimon не цепляйся к словам, ясень пень подразумевается скорость выполнения кода! -> :wallbash: ты меня совсем в грязь втаптываеш такими фразами
Цитата:

Сообщение от jimon (Сообщение 102951)
Aceton
ты можешь наконец-то отличить движок от языка ?

:wallbash:

h1dd3n 06.04.2009 13:55

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от Aceton (Сообщение 102948)
...
а помоему не глупо, зато можно его выжать на полную +ОПП на С++ удобнее чем код блица обычный с кучей функций

Это то понятно... а другие движки попробывать не хочешь?

ffinder 06.04.2009 14:36

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от Aceton (Сообщение 102948)
да по большему счету сдк в итоге быстрее выйдет в разы, таких отличающихся по производительности мест полно
ч.т.д.?:crazy:
а помоему не глупо, зато можно его выжать на полную +ОПП на С++ удобнее чем код блица обычный с кучей функций

если нужно быстрее в разы - надо забыть про Блиц.
у Блица всего два сильных момента:
1. все "просто работает"
2. DX7
они же и отрицательные
1. если "просто не работает" то к Блицу прикрутить иногда становится в разы сложнее чем написать с нуля.
2. DX7

ЗЫ: С++,С++,С++ - запарил уже... на что у тебя скорости не хватает может покажешь?

Aceton 06.04.2009 14:55

Ответ: Blitz3d C++ или обычный Basic?
 
Почему С++? - я не хочу писать на обычном бесике
Про производительность - это просто рассуждения

h1dd3n 06.04.2009 15:05

Ответ: Blitz3d C++ или обычный Basic?
 
Цитата:

Сообщение от Aceton (Сообщение 102961)
я не хочу писать на обычном бесике

Почему? Изза того что C++ это "круто" и "мощно"? Типа "бейсик это хрень устаревшая"? Мне кажется сначала надо изучить более простой язык и сделать на нем что нибудь законченное, а потом уже лезть в C++, имхо.

Aceton 06.04.2009 15:52

Ответ: Blitz3d C++ или обычный Basic?
 
зачем мне тратить время на *бесик* , если можно сразу делать все С++

И не надо смотреть на меня как на человека, который програмит 1й день.

Конечно С++ это круто и мощно! Тут даже спорить не о чем!



Уже давно смотрю в сторону огра, в нем нет таких проблем.
НО как уже писал выше Огр не тянет на видяхах ниже жифорса 5600, или работает на них неадекватно.

Чем привлекает блиц - простота и надежность, потому и хочу реализовать его на языке С++, который дает возможности расширения шире чем бесик.
Проблема в том что на С++ мало кто пишет приложения для блица, потому и возникают такие вопросы у меня , ибо почерпнуть почти негде.


Часовой пояс GMT +4, время: 19:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot