kategoria: Hollywood
[#1] Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)
Czesc
Kilka dni temu zabralem sie za Blitz-a i udalo mi sie przepisac kawalek kodu z Hollywood generujacy i rysujacy labirynt.

Kod napisany w Hollywood byl przeze mnie "dopieszczany" miesiacami ok, racja i robilem SETKI porownan z wersjami poprzednimi - co zaowocowalo prawie 2krotnym przyspieszeniem.

Kod w Blitzie jest przepisany w 2 dni na zasadzie "byle dzialalo" - zawiera pelno zbednych zmiennych, warunkow i petli - ZERO optymalizacji - bo na dzis znam tylko podstawy.

Obie wersje sa skompilowane pod amige klasyczna (bez fpu) i uruchomione na a1200 + blizzard 030 (bez karty graficznej). Wersja Holly ma nieco ponad 2mB a Blitz okolo 50kB.

Na belce okna pojawia sie czas w sekundach liczony od wystartowania 1szej procedury obliczeniowej (czyli juz po inicjacji wszystkich zmiennych) do zakonczenia rysowania

<--- Hollywood na lewo Blitz2 na prawo --->
[#2] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@peceha, post #1

Bardzo ciekawe test, a wnioski o jakości kodu Hollywoda same się narzucają.
Po prostu miazga. Mokra plama z Hollywooda zostaje po tym porównaniu.
[#3] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@vojo, post #2

To nie kod był złej jakości (bo kod w jednym i drugim wypadku napisał peceha). Hollywood po prostu:
a. nie było pisane z myślą o klasyku z AGA i 030;
b. nie jest typowym pakietem do tworzenia oprogramowania. Spróbuj napisać taki labirynt za pomocą Scali :)
[#4] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@peceha, post #1

Zgodzę się z Recedentem. Po prostu Hollywood słabo się nadaje do zadania, jakie sobie postawiłeś i w znacznej mierze problem został wywołany początkowym błędnym wyborem narzędzia.
[#5] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@recedent, post #3

Też się zgadzam.

Po prostu jak ktoś projektuje współczesne narzędzia to testuje je zazwyczaj na sprzęcie dysponującym sporą mocą obliczeniową. Dlatego takie "Hello World" na Androida ma olbrzymi plik wykonywalny, większy bodajże niż jedna strona dyskietki do 8 bitowego Atari, na której można takich samych ale na inną platformę można zmieścić naprawdę dużo.

Żeby było śmieszniej to ostatnio np. mój program dla komputera Elwro 800 Jr nie skompilował się z dedykowanym dla tego komputera kompilatorem Pascala(w teorii przystosowana wersja zachodniego), a z zachodnim wzorem skompilował się(co prawda niestety bez użycia PL-znaków)...

Ostatnia aktualizacja: 24.01.2018 13:34:48 przez pgru2
[#6] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@Krashan, post #4

Ewidentnie, tylko po co tworca portowal to na klasyka, skoro ma to taka wydajnosc?
Nie lepiej bylo poswiecic ten czas na dopracowywanie i optymalizacje kodu pod AOS4
[#7] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@selur, post #6

Nie za bardzo portował. Peceha użył po prostu pluginu Plananarama, żeby "pokątnie" wyświetlić aplet/skrypt/wykonywalkę Hollywood pod klasykiem z AGA. Normalnie Hollywood wymaga karty graficznej, a jak masz kartę graficzną to z reguły nieco lepszy cep również. Poza tym - równie dobrze możesz zapytać "po co powstaje Netsurf na klasyka, skoro pod 030/AGA nie bardzo chce działać"? Po prostu - do komfortowego użytku wymaga "nieco" lepszego konfigu.

Jako ciekawostkę podam tylko, że wbudowany w Hollywood przykładowy "obracający się sześcian z nałożonymi obrazkami" (co prawda zrobiony nie w 3D, tylko "kombinatorsko") przy włączonym antialiasingu zabija wydajnościowo mojego G5. Życie.

Ostatnia aktualizacja: 24.01.2018 13:40:19 przez recedent
[#8] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@recedent, post #7

Planarama to tylko wyświetlenie, na filmie widać ze się wyświetla co prawda wolniej od blitza, no ale przecież nie samo wyświetlanie zajmuje 17 sekund. Nie wiemy jak się generuje labirynt, ale pewnie to są w dużej mierze obliczenia matematyczne, i tu wychodzi jakość kodu generowanego przez Hollywod (żeby była jasność - nie jakość kodu źródłowego napisana przez Pecehę, ale jakość kodu maszynowego wygenerowana przez Hollywood). Niechby się generował 2-3 razy dłużej, ale aż tyle?
[#9] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@Krashan, post #4

Zgadzam sie ze wszystkimi, ze Hollywood nie jest "wprost" przystosowany do uruchamiania na amidze klasycznej i to bez karty graficznej (pewnie ludzie na forum nalegali wiec autor napisal plugin by byli szcesliwi )

Ja po niego siegnalem bo po powrocie do Amigi chcialem latwo i przyjemnie napisac jakis program - Hollywood to oferowal: pisanie co na PC i kompilacja pod Amige.

To porownanie moze nie jest "fair" ale pokazuje czego sie spodziewac gdy ktos juz zdecyduje sie uzyc Hollywood na amidze klasycznej bez karty graficznej - nie wiedzac co siedzi "za kulisami" to calosc wyglada, tak jak vojo napisal, na "knockout" szeroki uśmiech.

#8
faktycznie, plananrama jest odpowiedzialna za wyswietlanie (i tu doskonale widac spadek predkosci) ale masz racje, ze obliczenia matematyczne wlasciwie tego samego programu daja duza roznice (ze wzgledu na losowosc labirynt za kazdym razem bedzie inny i ciezko jest porownywac ale moze to byc kwestia +-1 sekundy max)

EDIT
przestawilem tak liczniki by dostac czas odpowiedzialny za samo "kopanie" - teraz juz nic innego nie jest liczone pomiedzy (wczesniej przed "kopaniem" bylo jeszce jedno male ustawianie drzwi a po "kopaniu" rysowanie calosci).
Wynik w sekundach (nie zaokraglony tylko wzieta czesc calkowita):
blitz: 2
Holly: 10

i faktycznie to kod z Hollywood jest "dawca" wiec ten przepisany w Blitz-ie mozna zakladac ze bedzie mniej wydajny

Ostatnia aktualizacja: 24.01.2018 14:13:32 przez peceha
[#10] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@selur, post #6

Trochę się nie zrozumieliśmy. Uważam, że Hollywood nie jest językiem programowania, tylko silnilkiem do prezentacji multimedialnych z rozbudowanymi możliwościami skryptowymi. W związku z tym nie nadaje się do pisania gier, niezależnie od platformy. Coś prostego można nim sklecić, ale to jak wbijanie gwoździa kombinerkami.
[#11] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@Krashan, post #10

Ale te rozbudowane możliwości skryptowe są imponujące. Hollywood ma 700 poleceń. Wspomaga animację, video, sieć itd. Myślę, że w temacie tworzenia gier jest czymś jak AMOS.

Dokumentacja: http://www.hollywood-mal.com/docs/html/hollywood/

Nawet kolega Mufa zrobił w nim kilka gier i prezentacji.
[#12] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@Hexmage960, post #11

Można powiedzieć nawet że Mufa jest krajowym specjalistą od Hollywood.
[#13] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@michal_zukowski, post #12

Ale jakby nie patrzec:
for i=0 to 100000 ;sto tysiecy
 a=i
next


na Hollywood zajmuje 33 sekundy przy dodaniu DISABLELINEHOOKS() (taki przyspieszacz)
gdy ten przyspieszacz usune to czas wzrasta do 45 sekund

w blitzu...
no coz, musialem zwiekszyc petle do 1000000 (miliona) by zajelo cala sekunde

Faktem jest ze Hollywood operuje na:

The storage space for every number has full 64 bits, which means that you can use very large integers and very precise float numbers


Gdy ustawilem w Blitzu kazda zmienna na typ FLOAT i przywrocilem granice na 100000 (sto tysiecy) to czas wyszedl 8 sekund (typ LONG zaowocowal 6 sekundami)

Ostatnia aktualizacja: 24.01.2018 15:04:10 przez peceha
[#14] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@Krashan, post #10

"nie jest językiem programowania, tylko silnilkiem do prezentacji multimedialnych z rozbudowanymi możliwościami skryptowymi"

I tak z grubsza to wyglada, choc aplikacje w H. z tego co widac tworzy sie poprzez pisanie kodu a nie klikanie w przyciski, jak to ma miejsce w roznego rodzaju "makerach".
Moze po prostu mylna jest reklama Hollywood'a jako samego jezyka programowania.
[#15] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@peceha, post #13

Zapewne kod produkowany przez Hollywood jest dalej interpretowany, a nie w postaci kodu maszynowego.
[#16] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@Hexmage960, post #11

A ja myślę, że jednak nie jest i to Krashan ma rację.
[#17] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@peceha, post #13

To dla ciekawostki podam, że ta sama pętla (jeden do miliona) w Amosie na turbinie 020@28MHz wykonuje się w czasie:
3.06667 s

A po setpatch'u:
2.81 s


Ostatnia aktualizacja: 24.01.2018 16:24:16 przez Umpal
[#18] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@peceha, post #1

A tak z ciekawości mogłeś porównać BB2 z AmiBlitz 3.5/3.6? (też działa na motorolce).
[#19] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@selur, post #14

aplikacje w H. z tego co widac tworzy sie poprzez pisanie kodu a nie klikanie w przyciski, jak to ma miejsce w roznego rodzaju "makerach".


Też nie do końca. Masz w końcu Designera, który (chociaż dawno nie aktualizowany i w związku z tym nie obsługujący wielu obecnych w najnowszych wersjach pakietu opcji) pozwoli Ci na przykład wyklikać prostą apkę na Androida zupełnie bez babrania się w kodzie (po szczegóły odsyłam do najnowszego numeru pisma "Amiga NG").
[#20] Re: Porownanie predkosci: Holly7 vs Blitz2 (amiga klasyczna)

@KM, post #18

Wgralem ten kod "...bb2" do AmiBlitz3 i nawet sie skompilowal bez zajakniecia
Niestety taka wielkosc mapy jest za mala by zobaczyc roznice wiec zwiekszylem ja x2 w kazdym kierunku (wyniki to srednia z 4 uruchomien):
blitz2 : 42s
amiBlitz : 43s
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem