forum speccy.pl

ZX Spectrum => RÓŻNOŚCI => Wątek zaczęty przez: ZbyniuR w 2014.07.28, 14:07:46

Tytuł: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.07.28, 14:07:46

W KOMPUTER 2-88 str.11 na dole środkowej kolumny trafiłem na wzmiakę o porównaiu prędkości Basica Spectrum do ruskiego Elektronika BK 0010 i GW-Basic w ST. Autor podaje że pętlę  FOR n=1 TO 10000:NEXT   pierwszy wykonuje w 42s, 2gi w 16s a 3ci  w 2sek.

I tak się zastanawiam czy spotkaliście się już z programami testującymi i porównującymi prędkość Basica na różnych platformach?
Albo czy jest tu ktoś zainteresowany takimi testami?  By już się nie opierać na subiektywnych wrażeniach ale na jednoznacznych wynikach. :)

Sam gdzieś kiedyś znalazłem (nie pamiętam w jakiej gazecie) wyniki czegoś takiego ale bez informacji jak to testowano i mierzono. A wynik był podano osobno za: test arytmetyczny, sortowanie zmiennych, wyświetlanie tekstu i rysowanie linii.

Czy ma ktoś pomysł co powinno być w takim teście. Czy taki podział jak powyżej jest optymalny? Jakich komend użyć? W CPC łatwo zmierzyć czas operacji zmienną TIME. A jak to zrobić w innych nie wiem, ale pewnie są tu tacy co wiedzą. :)
Można by to potem używać do porównywania kompilatorów. I stworzyć jednoznaczny ranking. ;)


PS.: Ciekawostka z innej baczki, porównanie wyglądu czcionek na różnych 8bit. :)
http://damieng.com/blog/2011/02/20/typography-in-8-bits-system-fonts
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: steev w 2014.07.28, 20:15:12
PS.: Ciekawostka z innej baczki, porównanie wyglądu czcionek na różnych 8bit. :)
http://damieng.com/blog/2011/02/20/typography-in-8-bits-system-fonts
Zabookmarkowane.
Będzie jak znalazł jeśli kiedyś będę potrzebował fajnej czcionki 8px :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.07.28, 21:22:05
A nie lepiej stąd:  - choć ten adres jest już raczej znany. :)
http://atarionline.pl/v01/index.php?subaction=showfull&id=1236639234&archive=&start_from=&ucat=7&ct=poczatki
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: steev w 2014.07.28, 23:05:30
A nie lepiej stąd:  - choć ten adres jest już raczej znany. :)
http://atarionline.pl/v01/index.php?subaction=showfull&id=1236639234&archive=&start_from=&ucat=7&ct=poczatki
Też zabookmarkowałem :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: popocop w 2014.07.29, 19:32:12

W KOMPUTER 2-88 str.11 na dole środkowej kolumny trafiłem na wzmiakę o porównaiu prędkości Basica Spectrum do ruskiego Elektronika BK 0010 i GW-Basic w ST. Autor podaje że pętlę  FOR n=1 TO 10000:NEXT   pierwszy wykonuje w 42s, 2gi w 16s a 3ci  w 2sek.

Przytoczone porównanie nie ma większego sensu, bo to są różne komputery, pracujące z innymi prędkościami. Szybkość BASICa można porównywać, jeśli komputery pracują ze zbliżoną (lub taką samą) prędkością. Ewentualnie na jednym komputerze testuje się kilka wersji BASICa.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: pear w 2014.07.29, 19:47:12
Przytoczone porównanie nie ma większego sensu, bo (...)
Przecież o to chodzi w tym wątku ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ikci w 2014.07.29, 21:22:39
Generalnie cały ten wątek jest NIEPOŻĄDANY  :D
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: wojtek9989 w 2014.07.29, 22:33:36
Ale właśnie w tym jest "seks" .Jak czytam ten wątek to jakbym przeniósł się do przeszłości ( patrz lat młodości) i wykłócał się z kumplami , który komp jest lepszy. Najlepsze jest to ,że mimo jestem zagorzałym commodorowcem , bardzo mnie urzekły maszyny ze stajni Sinclair, szczególnie pod względem AY (ma coś w sobie....).     
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.07.30, 00:49:43
wojtek9989@ - To jesteś rzadkim przypadkiem, bo zwykle komodorowcy są zakochani w SIDzie. :)


popocop@ - Wybacz nie widzę podstaw by myśleć że nie ma sensu. To tak jakby uważać że nie da się porównać prędkości aut które mają różną wielkość kół, albo ilość biegów, albo jeden jest na benzynę a drugi na ropę. ;)
A przecież chodzi o to by sprawdzić które rozwiązanie się lepiej sprawdza. :)

Program testowy "się robi", potem przedstawię tu jego wersję wstępną w celu konsultacji oraz by poprosić zainteresowanych z innych platform o zrobienie wersji na inne Bejziki. Noo chyba że ktoś mnie uprzedzi i sam tu zamieści swoją wersję. :)

Pomysł jest taki by program się składał z kilku części:
1)  Rysowanie linii - (w tej konkurencji C64 odpada, no chyba że w jakimś popularnym kartridżu jest komenda DRAW lub jej odpowiednik). Proponuję by się ograniczyć do trybu graficznego z kwadratowymi pikselami oraz rozdziałki ze speccy żeby inne kompy nie musiały zapełniać większej ilości bajtów w pamięci ekranu niż on. Choć w CPC się tak nie da bo w takiej rozdziałce ma po 2 bity na piksel a nie 1 jak w pozostałych więc będzie mu trudniej.

2)  Wyświetlanie tekstu - Może być dowolny byle przygotowany wcześniej i aby się składał z takiej samej ilości znaków.

3)  Sortowanie - Oczywiście istnieje wiele metod i samo ich porównywanie to też ciekawe zajęcie dla maniaków. Użyjemy tej samej na wszystkich platformach.

4)  Operacje matematyczne i może jeszcze przekształcanie zmiennych. - A może to powinno być w osobnym teście?

Można by dodać jeszcze inne, czekam na propozycje. :) np. czas potrzebny na wczytanie z pamięci zewnętrznej 16KB. ;)
Oczywiście wyniki podawane w sekundach z dokładnością do paru cyfr po przecinku. Program napisać tak by wszystkie platformy miały takie komendy. Z tym że nie chodzi o brzmienie nazwy, ale o ich odpowiedniki robiące to samo. I przekonamy się która maszyna w czym jest szybsza i o ile. Sam jestem ciekaw które z mitów uda się potwierdzić a które obalić. :)

Gdy już ustalimy wyniki podstawowych konfiguracji można będzie przetestować jakieś rozszerzenia czy zamienniki standardowych procedur z ROM-u i sprawdzić o ile poprawiają one wynik danej maszyny w danej konkurencji. Ot tak z ciekawości. Albo jak sobie radzą bardziej egzotyczne komputery na które ktoś zdoła przetłumaczyć program testowy. :)

CPC ma komendę TIME która świetnie się nadaje do mierzenia jak długo coś się wykonuje. Nie wiem jak to zrobić na innych platformach, ale ufam że tacy co wiedzą się znajdą. :)

Jak ktoś ma jakieś uwagi na temat jakie "konkurencje" powinny być, lub jak sformułować algorytmy, z chęcią przeczytam. Jeśli ktoś jest po prostu ciekawy jak szybko maszyna z innego klanu robi jakąś rzecz, niech o tym napisze. :)
A komentarze o bezsensie takiej "Olimpiady" od teraz będę ignorował. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: RafalM w 2014.07.30, 09:42:31
Jedna uwaga - porównując szybkość operacji w Basicu tak naprawdę nie porównujesz możliwości komputera - porównujesz warianty Basica a Basic to tak naprawdę program jak każdy inny tyle tylko że siedzący w ROMie.

Jak sam zauważyłeś C64 ma raczej kiepski Basic, bez funkcji graficznych jak linia czy okrąg, bez wsparcia dla sprajtów... Czy to znaczy że C64 jest kiepski?

Interpretatory Basica wcale nie były szczególnie wydajne na żadnym z komputerów. Wręcz przeciwnie, to często dość słaby kod, pisany byle się wyrobić w terminie oddania komputera do produkcji.Kilka razy widziałem że siadał już we współczesnych czasach człowiek, coś tam przepisywał i nagle jakaś operacja w Basicu zaczynała działać kilka razy szybciej

Czyli nie porównujesz SPRZĘTU (jak głosi tytuł wątku) tylko wydajność kodu różnych ludzi.
Ale jeśli o to właśnie chodzi to okay.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.07.30, 18:22:31
Tak właśnie o to chodzi. :)

Oczywiście masz rację że w wielu przypadkach procedury w ROMach są słabo zoptymalizowane, co nie raz było poprawiane przez zdolnych koderów. A winę za tą powolność ponoszą programiści ROM-ów a nie konstrukcja sprzętu.  ::)
Niemniej jednak właśnie z taką postacią Basiców jaka jest w ROMach ludzie się głównie stykali, a to rzutowało na opinie o danej marce.

Nie napisałem że C64 ma kiepski Basic. Słyszałem nawet że w XE mimo szybszego procka Basic jest wolniejszy niż w C64. Ale nie wiem czy to prawda. Prawdą jest natomiast to że w C64 brak komend PLOT i DRAW, a są to jedne z ulubionych komend początkujących basicowców. Samodzielne napisanie takich procedur w kodzie jest dla nich niemożliwe. Brak też LOCATE, (w ZX to chyba PRINT AT), co instrukcja proponuje zastąpić serią kodów sterujących w CHR$, a jest to raczej mało wygodne.  :-\  Takie polecenie jest za to w kartridżu. Teraz nie pamiętam czy to był Final czy BlackBox. Sam kiedyś dzięki niej napisałem na C64 Sokobana w trybie znakowym, a gdybym miał się motać z kodami kontrolnymi albo POKE-ami to pewnie bym sobie odpuścił. :) Dodatkowe komendy były 1 lub dwu znakowe, a zaczynały się taką strzałką w lewo. Może ktoś kojarzy w czym to było.
Brakowało też paru innych komend zupełnie tak jakby ten Basic był napisany dla kompa co ma drukarkę zamiast ekranu. Na szczęście każdy komodorowiec miał takie rozszerzenie z którym jego basic stawał się całkiem użyteczny.  (...)


A co do nazwy wątku to wymyślił go Tygrys gdy wydzielił tą dyskusję z jeśli dobrze pamiętam:
http://speccy.pl/forum/index.php/topic,1106.0.html    czyli  "ZX vs C64 vs CPC"  chyba z obawy że przemieni się we wojnę, a chciał mieć możliwość zamknięcia tematu.   Zresztą może to nie głupi pomysł by to porównanie Basiców przenieść do nowego wątku np.  "Olimpiada Basiców" hehe  ;)


A teraz moja wstępna niedokończona wersja CPC programu testującego:

10 MODE 1:DEFINT a,x,d:t=TIME:FOR a=16384 TO 20480:POKE a+1,PEEK(a):NEXT:t2=TIME:PRINT"peek-poke"(t2-t)/300:END
20 SAVE"16KB",b,&C000,&4000:t=TIME:LOAD"16KB":t2=TIME:PRINT"load 16KB"(t2-t)/300:END
30 CLS:t=TIME:FOR x=0 TO 510 STEP 30:FOR d=0 TO 510 STEP 30:PLOT x,0:DRAW d,350:NEXT:NEXT:t2=TIME:PRINT"plot-draw"(t2-t)/300:END
40 CLS:t=TIME:FOR x=0 TO 510 STEP 30:FOR d=510 TO 0 STEP-30:PLOT x,0:DRAWR d-x,350:NEXT:NEXT:t2=TIME:PRINT"plot-drawR"(t2-t)/300:END

MODE 1 - zmienia tryb graficzny na 320x200 i czyści ekran
DEFINT - zmienia domyślną postać zapisywanych zmiennych liczbowych z REAL zapisywaną w 5 bajtach na INTEGER zapisywaną w dwóch bajtach, co nieco przyspiesza obliczenia które nie wymagają liczb zmienno-przecinkowych. Bez tej komendy musiałbym do zmiennych a,d,x dopisywać %.
TIME - to w CPC zmienna systemowa która "liczy" ile czasu minęło od ostatniego resetu. 300 takich jednostek to 1 sekunda. Jak widać łącznie ze zmiennymi t i t2 używam jej do mierzenia czasu trwania testowanych operacji.
DRAW - to odpowiednik DRAWTO w XE rysuje linię od ostatniej pozycji "kursora pikselowego" do tych podanych jako parametry względem współrzędnych 0,0 które w CPC są w lewym dolnym rogu.
DRAWR - to odpowiednik komendy DRAW w ZX rysuje linię od ostatniej pozycji "kursora pikselowego" do tych podanych jako parametry względem ostatniej pozycji "kursora pikselowego".

Linia 10 przenosi bajt po bajcie dokładnie 4KB, pod adres o 1 większy niż źródło czyli w praktyce zapełni te 4KB+1bajt wartością z pierwszego bajtu.
Linia 20 - nagrywa plik binarny o długości 16KB a potem mierzy jak długo go wczytuje z powrotem. W przypadku CPC pomiar może nie być precyzyjny. Po 1sze CPC nagrywa plikom binarnym nagłówek 128bajtów co przy zaokrąglaniu objętości pliku na dysku w górę do pełnego KB zajmuje 17KB a przy wczytaniu wymaga by odczytał o jeden sektor więcej niż zajmuje 16KB. Po 2ie sterownik stacji w CPC nie ma osobnego procesora w stacji tylko korzysta z procesora głównego i pauzuje na mikrosekundy przerwania procesora w trakcie odczytu danych z dysku w tym także te z których korzysta funkcja TIME, zaniżając nieco ilość sekund potrzebną na wczytanie pliku. Po 3ie plik testowy nagrany na pustym dysku wymaga przy odczycie mniejszej ilości ruchów głowicy miedzy ścieżkami niż na dysku pełniejszym. Po 4te na czas pomiaru wpływ ma także to czy w chwili wydania komendy LOAD dysk już się obraca czy jeszcze nie oraz pod jakim kątem dysk jest obrócony czyli ile mikrosekund potrzeba nim głowica dotrze do odpowiedniego sektora.
  Także odczyt pliku z kasety zależy od reakcji człowieka na wciśnięcie klawisza na klawiaturze, oraz od tego jak daleko od początku pliku jest ustawiona taśma. W praktyce każdy pomiar jest nieco inny, ale graniczne przypadki nie przekraczają kilku procent.

Linie 30 i 40 to dwie wersje testu rysujące identyczny wzór, ta druga jest ciut wolniejsza bo w komendzie DRAWR ma odejmowanie w pierwszym parametrze. Liczby współrzędnych są tak duże bo CPC w takiej rozdzielczości na każdy piksel na ekranie ma 4 piksele teoretyczne np 0,0 - 0,1 - 1,0 oraz 1,1 to ciągle ten sam piksel w lewym dolnym rogu. Dlatego w XE i ZX liczby 510, 350 i 30 muszą być zmniejszone o połowę na 255, 175 i 15 aby narysowały tam identyczny wzór. Z tym że linia 30 jest dla XE a 40 dla ZX. :)

Testy prędkości wyświetlania tekstów, matematyczne, obróbki zmiennych tekstowych, i sortowania z komendami warunkowymi i skoków - są na razie w chmurze moich myśli. Może ktoś mi coś podpowie?  ???

Mam nadzieję że już macie pomysły jak mierzyć czas na swoich platformach i czekam na wyniki testu oraz pytania, uwagi i komentarze. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2014.07.31, 21:24:53
Brak też LOCATE, (w ZX to chyba PRINT AT), co instrukcja proponuje zastąpić serią kodów sterujących w CHR$, a jest to raczej mało wygodne.  :-\ 
Jeśli chodzi Ci o umieszczenie znaku w konkretnym miejscu ekranu, to jest to na Atari instrukcja POSITION X,Y.

LOCATE X,Y,Z ma inną rolę. W zależności od trybu graficznego zwraca rejestr koloru na pozycji X,Y, rejestr koloru i znak, lub tylko znak.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.07.31, 22:36:28
Trzeba by kiedyś zrobić taką tabelkę z listą komend z popularnych Basiców, aby ktoś kto nie zna innych dialektów posiłkując się nią mógł wklepywać do swojego kompa listingi z innych maszyn. Bo prócz wspólnego kanonu typu PRINT, FOR NEXT, IF THEN, GOSUB RETURN, itp są takie kwiatki jak właśnie ten. :)

CPC - LOCATE / ZX - PRINT AT / XE - POSITION / C64 - <L (ale tylko z wetkniętym Turbo)  ;)

No to kawałek jest, jeszcze zostało ze 100 komend. :D

Widziałem tego typu tabelkę ale nie kompletną a raczej z przykładami jako ciekawostkę w KOMPUTER nr.7-86 str 24-25.


A coś takiego jak to LOCATE w XE to w CPC jest TEST do odczytu koloru piksela oraz COPYCHR$ do odczytu litery z ekranu, (jednak to drugie jest tylko w 6128 i 664). Ale Bajtek opisywał kiedyś trik jak to zrobić w 464. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: RafalM w 2014.08.01, 11:19:37
Cytuj
A coś takiego jak to LOCATE w XE to w CPC jest TEST do odczytu koloru piksela oraz COPYCHR$ do odczytu litery z ekranu

Uzupełnię (choć na tym portalu w zasadzie każdy powienien to wiedzieć ;) ) że w Basicu Spectrum:

ATTR - zwraca atrybut (czyli kolory) pola w podanym miejscu na ekranie
SCREEN$ - zwraca znak w podanym miejscu na ekranie

W zasadzie wszystkie te Basiki mają to samo tylko inaczej się nazywa :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Phonex w 2014.08.01, 12:17:05
ATTR - zwraca atrybut (czyli kolory) pola w podanym miejscu na ekranie
SCREEN$ - zwraca znak w podanym miejscu na ekranie

POINT - zwraca stan pixela  (1 lub 0) w podanym miejscu.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.01, 17:19:50
Myślę że jakieś różnice muszą jednak być. ZX XE i C64 mają po ok 80 komend a CPC ok 160.
Ciekawe co takiego ma C64 czego nie ma np ZX skoro ma nie mniej komend a jak wiemy brakuje w nich parunastu rozkazów do grafy i dźwięku. W CPC mimo tylu komend brakuje CIRCLE trzeba to zastępować sekwencją FOR DRAW SIN COS NEXT. A w 464 brak także FILL. Za to są takie jak pętla warunkowa WHILE WEND, Do IF THEN dodano ELSE, obsługa przerwań AFTER EVERY EI DI, do numeracji linii AUTO i RENUM, do śledzenia przebiegu programu TRON TROFF, do ustawiania przerywanych linii MASK. Drugi kursor kopiujący to też specyfika CPC i BBC.
Ostatnio czytałem że XE jest wolny bo stale używa zmiennych zmiennoprzecinkowych. I myślę że takich ciekawostek wyszłoby na jaw więcej przy pracach nad taką tabelką tłumaczącą i takimi testami jakie proponuję. A C64 ma polecenie TIME ale nie wiem co robi. :)

Oki dodaję linijkę sypiącą tekstami   x$="QWERTYUIOP ASDFGHJKL ZXCVBNM":t=TIME:FOR a=1 TO 200:PRINT x$:NEXT:t2=TIME:PRINT"print"(t2-t)/300

Poszedłem na łatwiznę przyznaję. Ech ta moja skłonność do upychania wszystkiego co się da w jedną linię. Lepiej by przetestował prędkość PRINTów ciąg PRINTów bez pętli i zmiennych. I podaję wyniki z emulatora CPC. Wszystko w MODE 1. :)

Samo  t=TIME:t2=TIME:PRINT t2-t    daje wynik 1, a przypominam że to 1/300 sekundy. To tyle na temat precyzji pomiaru. Stwierdziłem też że zmiany tępa działania emulacji nie wpływały na wyniki.

PRINT - 23.40  (wersja z IF THEN zamiast FOR NEXT wyszła ciut wolniej bo 23.46 może przez to że po TIME musiał przejść do następnej linijki a nie tylko "minąć" dwukropek) (w mode 0 wyszło 35s cóż tu litera zajmuje 2 razy tyle bajtów na ekranie i musi częściej skrolować ekran bo taki długi napis się nie mieści w linijce, za to w a mode 2 - 11s to tak poza konkursem) ;)

PEEK-POKE - 9.18 (przypominam przerzuca 4KB bajt po bajcie w nowe miejsce)

LOAD 16KB - na pustym dysku po kilku próbach najszybciej - 0.84, najwolniej - 1.20 (trzeba by to sprawdzić na prawdziwym sprzęcie)

PLOT-DRAW - 20.96 (w mode 0 - 13.27 a w mode 2 - 29.23, zaskoczyło mnie że szerokimi pikselami rysuje szybciej, za to w mode 2 jak zmniejszę poziome współrzędne o połowę by wzór był piksel w piksel jak w mode 1 to czas jest taki jak w mode 1) :)

PLOT-DRAWR - 21.18 (przypominam komenda DRAWR odpowiada DRAW w ZX, a wcześniejsza DRAW z CPC to odpowiednik DRAWTO w XE)

Trzeba by jeszcze dopisać kod mieszający zmiennymi i wykonujący obliczenia w tym i te najwolniejsze jak SIN i COS. Bo to istotna część programów w Basicach. Cóż kiedyś mnie złapie natchnienie, albo ktoś z forumowiczów coś zaproponuje.

Czekam na wyniki testów z innych platform, a potem pokomentujemy różnice i pomyślimy jak i o ile da się poprawić wyniki stosując jakieś wspomagacze. :)

Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2014.08.01, 19:00:28
POINT - zwraca stan pixela  (1 lub 0) w podanym miejscu.
W ATARI BASIC POINT ustawia głowicę stacji dysków nad określonym sektorem i bajtem :) POINT #kanal,sektor,bajt.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Phonex w 2014.08.01, 20:27:41
W Spectrum z podłączoną stacją dysków OPUS Discovery, też ma inne zastosowanie. POINT #kan, n ustawia wskaźnik na n-ty bajt pliku, otwartego w kanale kan.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: RafalM w 2014.08.01, 20:38:53
Cytuj
Ciekawe co takiego ma C64 czego nie ma np ZX skoro ma nie mniej komend a jak wiemy brakuje w nich parunastu rozkazów do grafy i dźwięku. W CPC mimo tylu komend brakuje CIRCLE trzeba to zastępować sekwencją FOR DRAW SIN COS NEXT. A w 464 brak także FILL. Za to są takie jak pętla warunkowa WHILE WEND, Do IF THEN dodano ELSE, obsługa przerwań AFTER EVERY EI DI, do numeracji linii AUTO i RENUM, do śledzenia przebiegu programu TRON TROFF,

Basic dla Spectrum ma CIRCLE ale bardzo kiepsko zaimplementowane. Istnieje tkz. algorytm Bresenhama do rysowania kół operujący na prostych operacjach na liczbach całkowitych i każdy normalny program tego używa. Tymczasem Spectrum do rysowania koła używa sinusów a do liczenia sinusów używa ułamków. Efekt - zamiast np. 0.1 sekundy koło się rysuje np 2 sekundy - 20 razy wolniej.

FILL- rozumiem że wypełnienie zamkniętego obszaru. Spectrum niestety nie ma tego w ogóle.

Nie ma też jakichś WHILE, DO WHILE, UNTIL itp ale to najmniejszy problem bo zawsze można to zastąpić przez IF i GOTO
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.06, 15:08:44
W Bajtku 4-1988 na str 14 jest tekst o porównaniu prędkości kilku Basiców na Atari XL/XE. W tym także podano sposób jak mierzyć czas wykonywania się programu, a więc wystarczy przed fragmentem programu który chcemy zmierzyć wpisać  POKE 19,0:POKE 20,0  a po tym fragmencie  t=PEEK(20)+PEEK(19)*256:PRINT t   
Tyle że jednostką czasu jakiej się tam używa jest takt zegara co wydaje mi się mało wiarygodne i nie wiem jak to się ma do sekundy. Ale może ktoś to rozgryzie. :)

Natomiast jak wyczytałem w  http://www.c64-wiki.com/index.php/TIME  Zmienna TIME w C64 działa tak samo jak w CPC z tą różnicą że tu na sekundę przypada 60 taktów a nie 300 jak w CPC. Czyli by coś zmierzyć na początku danej procedury piszemy  t=TIME  a na końcu  t2=TIME:PRINT (t2-t)/60   i mamy wynik w sekundach. :)

A speców od Spectruma tu nie brakuje więc czekam na wyniki. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: sect0r w 2014.08.06, 21:12:41
Takie małe porównanie na temat programowania c64 i ZX Spectrum http://www.eurogamer.net/articles/digitalfoundry-face-off-zx-spectrum-vs-commodore-64
Jak widać jest kilka aspektów w ktorych ZX radzi sobie lepiej niż C64 ;D
PS. Zasiekiste demko znalazłem w komentarzach do arta https://www.youtube.com/watch?v=7KegY8YIzQ4#t=136
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: RafalM w 2014.08.06, 22:35:59
Cytuj
PS. Zasiekiste demko znalazłem w komentarzach do arta https://www.youtube.com/watch?v=7KegY8YIzQ4#t=136

Owszem, Pimp my Spectrum jest fajne,  tylko to demo na PC :)

Słyszałem już o nim wcześniej. Ludzie napisali jakiś minimalistyczny emulator Spectruma, potem napisali pod niego demo, ustawili szybkość emulatora powiedzmy na 1000% i wypuścili całość jako jeden plik .exe na PC. Wszystko w 64 kilobajtach.

Inaczej mówiąc te efekty działałyby na Spectrum tylko kilka razy wolniej.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: sect0r w 2014.08.07, 07:44:58
Ważne, że w spektrumowym klimacie  ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.07, 14:20:08
Parę lat temu pewien koleś napisał na PC strzelankę  Cosmic Prison Commando  która wygląda jak na CPC.
http://www.pixelprospector.com/wp-content/uploads/2011/07/screenshot-cosmic-prison-commando.png
Demko można znaleźć w sieci. Klimat coś a`la Turican. A ostatnio pracuje nad przeniesieniem tego na CPC. Grafa już gotowa tylko kod napisać i jakoś to w pamięci pomieścić. Ale się męczy bo raczej w C pisuje, a to mało przydatne do wyciskania potów z Amstrada.

To co nie ma chętnych na porównanie prędkości komputerów? Czy czasu nie mają? :(
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: sect0r w 2014.08.07, 16:29:49
Wiadomo, że CPC zgarnie wszystkie nagrody  :o
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Sir David w 2014.08.07, 17:34:39
Jeżeli w szranki stanąłby też Sam Coupe, to nie byłbym taki pewien  :P
Gry napisane w Basicu całkiem nieźle śmigają.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.07, 19:21:30
A ja bym się założył że nie będzie jednego faworyta w wszystkich konkurencjach. CPC w kreskowaniu i printowaniu ma po 2 bity na piksel więc w tych dwóch raczej nie ma szans. Zresztą że tak powiem goły Basic to tylko wstęp, a potem możemy potestować jakieś Turbosy czy kompilatory, i wcześniejsi wygrani dostaną po du.. tzn po kwarcach. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.20, 23:26:40
Nie napisałem jeszcze testu na sortowanie, bo kolejny rocznik Bajtków przetwarzam na DSK, ale zrobiłem ponownie testy na CPC po wcześniejszym uruchomieniu "dopalaczy", procedur na szybkie printowanie i szybszą stację wzięte z Bajtka 9-92s18.

LOAD 16KB: normalnie było od 0.84s do 1.20s, a z turbo od 0.74 do 1.03. Czyli różnica niewielka, ale ta procedura nie zmienia prędkości transferu danych a jedynie skraca pauzy między przesuwami głowicy oraz odczytem poszczególnych sektorów, gdyż standardowe są tak wolne by działały nawet na stacjach z lat 70ych, oba testy robiłem na pustym dysku a założyłbym się że na pełniejszym gdzie więcej musi ruszać głowicą różnica byłaby większa. :)

PRINT: normalnie 23.4s, a w turbo 15.65s  (w mode 0 z 35s na 23.5s, a mode 2 z 11s na 7.6s). Nieźle nieźle. Pozostałe oczywiście bez zmian. :)

A teraz dodanie dodatkowego ROM o nazwie X-DDOS20.ROM  popularniejszego w Niemczech od Paradosa poprawia między innymi "Printowanie"....
Uuuu lala.  test PRINT: w mode 0 - 19.4s!, w mode 2 - 7.5s czyli ciut lepiej niż z Bajtka, a mode 1 - dziwne bo wynik nie za każdym razem jest identyczny, ale waha się pomiędzy 7.86 a 7.90 sekund!  Noo spadły mi kapcie. To prawie tak szybko jak w szybszym Mode 2 i aż 3 razy szybciej niż normalnie w mode 1. :D

W Komputerze i IKSie też są jakieś dopalacze których jeszcze nie wklepałem. No i trzeba by się kiedyś za jakieś kompilatory zabrać. ;)
Nie tracę nadziei że kiedyś poda wyniki ktoś z innej platformy. ;)


Testowałem kiedyś na emulatorze FutureOS  alternatywny nowy wypasiony OS dla CPC, rodem z Francji (konkurencja dla niemieckiego SymbOSa). I w przeciwieństwie do tego ostatniego nie ma wersji demo działającej z dysku a trzeba podłączyć prawdziwe lub emulowane ROMy. I uruchamiałem pod tym FOS jakieś animki 3D ściągnięte z norweskiego FTP. Zdumiało mnie że CPC potrafi wyświetlać całoekranowe cieniowane obracające się obiekty 3D. Ostatnio trafiłem na animkę w YT jednego z tych obiektów, (niestety kiepskiej jakości przez co nie wygląda tak imponująco).
Jest w końcowym 1/3 filmiku. https://www.youtube.com/watch?v=XIeUEqPZ-04  Mała rozdziałka i strasznie duży stopień kompresji.

I wyczytałem że to jest zrobione ze znaków które FutureOS potrafi w Mode 2 wyświetlać w tempie 23 tysiące na sekundę. Ja tu się jaram że test z 5600 znaków wykonuje się niecałe w 8 sek a fizyczną granicą jest takie coś?  Idę po valium. ;)

A tu jeszcze przykład przewijania obrazka co ma 64KB w pamięci ekranu co ma 16KB. https://www.youtube.com/watch?v=l3lqJ60pQr4

PS.: Sir David to kiedy mogę się spodziewać że podasz wyniki ze Sama? :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.28, 18:31:09
Jestem przygnębiony i zazdrosny. ;)  Żyłem sobie w błogiej nieświadomości aż zobaczyłem to:
https://www.youtube.com/watch?v=Htx6-FF-5Cw
To dwie godziny filmików z - C64 Nuvie Player - 16MB pliki .reu - na 1541 Ultimate II. Trwają zależnie od płynności od 1 do 3 minut. Wprawdzie zabawka kosztuje aż 150 Euro, ale raczej bym nie dał tyle nawet gdyby to było do CPC....


Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Tygrys w 2014.08.28, 18:36:31
Bo Ultimate 1541 to fajna zabawka.
Mam taką, da się oglądać dema, bo ten interface na FPGA w pełni emuluje stacje dysków (wraz z procesorem).
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.28, 18:51:40
Ta i 16MB ramu które widzi C64 i to do niego się ładują te filmiki z SD, z tego co zrozumiałem. Zastanawiam się w jakim trybie graficznym są te filmiki. Ale widzę że mimo tylu bajerów to coś nie ma fajnego uruchamiadełka tylko trzeba RUN pisać na piechotę, no to trochę obciachowo. ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: zaxon w 2014.08.28, 19:07:32
Zbyniu, poczekaj az Kisiel skonczy swoje wgrywadelko do c64 ;) Zapowiada sie niezle ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: wojtek9989 w 2014.08.28, 19:10:01
Taa.... 1541U to niezły kombajn .Widać jeszcze można odkryć coś jeszcze w naszych 8bit-owych maszynkach.Jak już piszemy o C64 to tu jeszcze jeden ciekawy projekt http://www.elektroda.pl/rtvforum/topic2731546.html .Rozbudowa do 1MB , zacytuję autora projektu : " Cała pamięć 1024kB została podzielona na części po 64kB czyli tyle ile może zaadresować procesor 8 bitowy 6510 (w c64). Dodatkowo można ustawić tak że w tym samym czasie w jednym banku 64kB działa VIC (sterownik grafiki), a w innym CPU. Aby podczas zamiany banków pamięci procesor "nie trafił w próżnię " zastosowałem dodatkową pamięć w obszarze I/O która jest widoczna zawsze i tam właśnie musi znajdować się kod programu przełączającego banki.
W ten sposób urządzenie daje praktycznie 16 komputerów c64 w jednym, gdzie mogę mieć 16 programów z których każdy ma właściwie do dyspozycji pełen komputer, a wspólne są jedynie urządzenia I/O. "
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.08.29, 00:06:27
Pomysł ciekawy, ale myślę że skoro trzeba będzie coś lutować, a nie tylko wetknąć magazynek z tyłu to raczej się tak szybko nie upowszechni. Choć kto wie, w XE 1MB to dziś niemal standard. No a napisanie działającego softu trwa dłużej niż polutowanie stada kabelków. Więc bardziej zazdrość budzą we mnie te filmiki. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.09.11, 04:11:43
Ze dwie strony wstecz wklejałem tu kiedyś linka do stronki z fontami z 8bitowców. Nie wiem czemu nie znalazłem tego wcześniej ale są tam także z 16 bit:  http://damieng.com/blog/2011/03/27/typography-in-16-bits-system-fonts
Ciekawe że w paru z nich są znaki które mają jakby błędny piksel, albo znak który jest przesunięty w matrycy inaczej niż pozostałe. Większość z nich wpikselowałem sobie w CPC i niedługo zaprezentuję we wątku o czcionkach. Także ten Makówkowy przerobiony z matrycy 11x11 na 8x8. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.10.10, 01:12:32
Znałem tą stronkę od dawna, a nadaje się do tego wątku, bo porównuje palety kolorów z różnych 8bitowców. :)
http://en.wikipedia.org/wiki/List_of_8-bit_computer_hardware_palettes
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2014.10.20, 18:01:45
https://www.youtube.com/watch?v=uA5bO27D9KU
Porównanie  "spy hunter" na kilku kompach i konsolach 8bit. :)
Mój faworyt to NES.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: tdu w 2015.03.02, 14:46:32
Ciekawy artykuł pasujący do tematu wątku

Spectrum vs Commodore

http://www.eurogamer.net/articles/digitalfoundry-face-off-zx-spectrum-vs-commodore-64
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Abrimaal w 2015.03.02, 18:11:27
Jeśli ktoś jeszcze nie zna, porównania setek gier na prawie wszystkich platformach można oglądać na YouTube na kanale  Gaming History Source (https://www.youtube.com/user/GamingHistorySource/videos).
Gdybym miał czas, bawiłbym się teraz w porównanie muzyki - tych samych utworów na różnych chipach, ale tego jest za dużo.
Przykładowe: Hymn to Aurora - cover versions (https://www.youtube.com/watch?v=l4poiPTowKo) i Tim Follin - cover versions (https://www.youtube.com/watch?v=0sm8HMFzvTY).
Myślę jednak o zestawieniu klasycznych gier na ZX i C64, które miały różną muzykę, tzn. całkiem inne utwory np. Cybernoid, Zynaps (C64/CPC/ZX), Savage, Arkanoid - Cobra ZX i Cobra C64, Netherworld, Turbo Boat, G.I. Hero. Trochę takich by się znalazło. Audio mógłbym zgrać, ale na video nie mam pomysłu ani softu.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2015.06.05, 11:08:56
Trafiłem na kolejną stronkę z porównaniami gier na wielu platformach.
Tytułów jest kilkadziesiąt i sporo obrazków do każdego.
http://frgcb.blogspot.com/p/blog-page.html
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Abrimaal w 2015.06.05, 19:17:46
Alley Cat na Atari, zaraz włączam. Przypomniałeś mi super grę.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2015.11.29, 02:37:41
Porównanie prędkości Basica na CPC i C64. :)
https://www.youtube.com/watch?v=pxye-RbKFpY
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: matofesi w 2015.11.30, 09:06:59
No to jakby patrzeć tylko na takie porównanie to Amstrad wypada słabawo ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2015.11.30, 12:25:37
No co ty powiesz? - po zoptymalizowaniu listingu uzyskałem czas o 8 sek krótszy a to już 2 razy szybciej niż wynik z C64. To o ile musi być szybszy by nie był słabawy?

Nie wiem czy klikaliście w linki w komentarzach pod filmikiem do filmików jak ten sam listing wykonuje BBC Micro 2MHz oraz BBC Master 4MHz. Oba na MOŚkach radzą sobie w 47 i 25 sekund. poczułem zazdrość. Ciekawe jak by wypadły inne 8bit. Może ktoś sprawdzi na ZX lub XE.

Czy ktoś się orientuje czy ten tryb graficzny w jakim jest C64 po resecie, to nie jest przypadkiem tryb tekstowy, w którym pamięć ekranu zajmuje tylko 2KB łącznie z kolorami i składa się tylko ze semigrafiki, czy to tryb grafiki 9KB w którym POKE-ami można modyfikować poszczególne piksele?

Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: matofesi w 2015.11.30, 12:46:12
Cytuj
Wyznaję 8bitowy ekumenizm. ;)

Ale to tylko pod warunkiem, że dotyczy Amstradów w sposób pozytywny? ;)

Oczywiście ";)" na końcu mojej wypowiedzi ci umknęło? I fakt, że wątek nazywa się "Niepożądane porównania"? ;)

A ja miałem na myśli wyłącznie to, że Amstrad na procesorze z zegarem 4MHz wykonuje program w minutę dwadzieścia a C64 z zegarem 1MHz (cztery razy wolniejszym) w dwie minuty piętnaście. Jakby wprost przeliczyć z jednej częstotliwości na drugą to C64 z zegarem 4MHz powinien wykonywać kod w niecałe 34 sekundy. Stąd moje "słabawo" ;)

I oczywiście, że standardowy tryb BASICa C64 to tryb "tekstowy".

A na Spectrum (emulator Fuse):
- w trybie 128 wykonuje się w mniej więcej 4:50
- w trybie 48 wykonuje się w mniej więcej 4:08
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2015.11.30, 12:49:52
To tylko testy na szybkość interpretera Basica. W necie jest filmik z jakiegoś programu w BBC, gdzie właśnie BBC miażdżyło ZX'a i jeszcze jakiś komputer - test w Basicu - ale prowadzący oczywiście zachwycali się szybkością komputera.
W przypadku Atari (jak i innych komputerów) mamy kilka wersji Basica do wyboru. Atari Basic jest koszmarnie wolny, znaczny wzrost szybkości wykonywania programu można uzyskać używając Basica XE lub Turbo Basica XL.
Np.
programik 1:

1 FOR I=1 to 50000: NEXT I

Czasy:
  TURBO BASIC XL:   58.0
  TURBO COMPILER:   54.1
  BASIC XE FAST :   61.6
  BASIC XE SLOW :   61.8
  BASIC XE BARE :  237.0
  ATARI BASIC   :  237.0

programik 2:

10000 I=0
10010 I=I+1: IF I<20000 THEN 10010

Czasy:
  TURBO BASIC XL:   58.1
  TURBO COMPILER:   12.5
  BASIC XE FAST :   41.2
  BASIC XE SLOW :   51.2
  BASIC XE BARE :   97.6
  ATARI BASIC   :  163.2

Czyli różnice spore.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: matofesi w 2015.11.30, 13:02:11
@flypeter oczywiście, że to jest porównanie BASICów i to średniej jakości. W praktyce należałoby porównać kilka różnych algorytmów - jakieś obliczenia matematyczne, jakieś sortowanie itp. Dopiero taki uśredniony benchmark przeliczony oczywiście przez częstotliwość zegara dawałby jakieś pojęcie o "jakości" danego komputera i jego BASICa :)

A z czystej ciekawości odpaliłem ten sam kod po kompilacji ToBoSem - tym razem program wykonywał się niecałe 27 sekund ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2015.11.30, 13:09:37
MSX1: 3:53

Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2015.11.30, 13:29:05
TI99/4A: 5:58
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: matofesi w 2015.11.30, 14:04:36
Sam Coupé w standardowym trybie graficznym: 1:14. I żeby było zabawnie to samo z wyłączonym ekranem: 1:09 ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2015.11.30, 14:16:12
Dzięki za podanie wyników, choć jeszcze od XE nie widzę, albo do C128. :)

Co do megaherców, to po pierwsze w CPC procek chodzi na 3.5 a nie 4, bo co 8my takt trafia do CRTC.
A po drugie 1MHz w MOS i Z80 to nie tyle samo mocy, bo konstrukcja procków jest inna i podobne rozkazy w Zilogu potrzebują zwykle więcej taktów na wykonanie, w praktyce od tylu samo do nawet 4ech razy więcej taktów. Uśredniając, (choć jest to porównanie bardzo niezadowalające z powodu dużej rozbieżności różnic w różnych rozkazach), dla uproszczenia powiedzmy że Z80 musi być taktowany 2 razy szybciej by uzyskać zbliżoną moc do 6502. Do takich wniosków doszedł też autor artykułu który kiedyś czytałem bodajże w Komputerze. Czyli w przybliżeniu procek w CPC ma o ok 70% więcej mocy od tego w C64 a nie aż 4 razy jak to liczą laicy. I może ktoś (fan C64) powiedzieć że czemu się domagam by ulgowo traktować Ziloga zamiast przyznać że jego konstrukcja jest kulawa. Otóż przyznaję że jest taktożerny. Ale zapytam czemu się domagać ulgowego traktowania C64 z powodu jego słabego taktowania? Skoro konstruktorzy poskąpili mu Megaherców, to poskąpili. I może lepiej się skupmy na rzeczywistych możliwościach a nie teoretycznych jakie by miała ta czy inna maszyna gdyby dostała coś czego nie ma a co ma konkurencja.

Zresztą porównując C64 z MOŚkiem 1MHz i wynikiem 2m15s do BBC Micro z takim samym prockiem (więc łatwo przeliczyć MHz-ety), taktowanym 2MHz i wynikiem 47sek, to który tu wypada słabiutko? ;)

Próbowałem znaleźć jakiś kompilator zmienno-przecinkowy do CPC i wiem że popularny był Taifun ale w necie widzę tylko francuską wersję i niemiecką instrukcję obsługi. :(  W tej chwili nie mam czasu by szukać bardziej ludzkiej.

Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: wojtek9989 w 2015.11.30, 21:23:51
Odpaliłem swoje C128 i oto wyniki :

Tryb 40 kolumn - 2:48

Tryb 80 kolumn - 1:23

Tryb C64 - 2:15

Co dziwne , dlaczego  basic 7 jest wolniejszy od basic 2 ? (sprawdzałem dwa razy )

Wie ktoś może jak taki programik wpisać pod cp/m ? ,to też bym sprawdził jeszcze w tym trybie .
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2015.11.30, 21:51:37
Atari Basic 3:50
Acorn Electron 1:04
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: trojacek w 2015.11.30, 22:00:33
Wie ktoś może jak taki programik wpisać pod cp/m ? ,to też bym sprawdził jeszcze w tym trybie .

Jest kilka basiców do wyboru:
http://www.z80.eu/basic.html
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2015.12.01, 01:07:20
Czyli jak dotąd, w tym teście wyszukiwania liczb pierwszych w Basicu mamy:

BBC Master - 0'25 - wersja tu użyta jest ciut zoptymalizowana, bo ma dodane % przy zmiennych integer, ale przypuszczam że to mu daje najwyżej ze 2 sek.

BBC Micro - 0'47
BBC Electron - 1'04
Sam Coupe - 1'14
CPC 6128 (80) - 1'19 - w 6128 są ciut szybsze procedury
CPC 464 (40) - 1'22  - 2 sek wolniej niż w 80 kolumnach
C128 (80) - 1'23 - być może dopiero włączenie trybu 80 kolumn przestawia procka na 2MHz
C64        - 2'15
C128 (40) - 2'48
Atari XL/XE - 3'50
MSX1     - 3'53
ZX48     - 4'08 - zaskoczyło mnie że jest wolniejszy od XE, i szybszy od 128.
ZX128   - 4'50
TI99/4A - 5'58 - jedyny tu 16-bitowiec.

Na razie mamy jedyny przykład z kompilatora na Speccy - ToBoSem - 0'27. Czekamy na więcej oraz na Basic z C+4, Vic20, ZX81, Meritum, Apple2, ST, Amigę... i co tam jeszcze macie. ;)

I tak z ciekawości, dodajecie jakieś rozkazy co mierzą czas, czy mierzycie stoperem w ręku? :)

Wyniki jakie podałem są bez modyfikacji ale eksperymentowałem z optymalizacją, czyli:
  usunięcie zbędnych spacji, zmiana nazw zmiennych na 1no-literowe, zadeklarowanie Integer tam gdzie się da zamiast funkcji INT(), oraz wciśnięcie więcej rozkazów do linii, bo przeskoczenie dwukropka trwa krócej niż do następnej linii. Dawało ułamki sekund, nawet dodanie kasowania ekranu na początku sprawia że o ileś numerków później drukowanie ich wymaga przesuwania ekranu. W sumie dało to 8 sek oszczędności.
Można też zmodyfikować nieco kod np. dodać średnik po zmiennej w PRINT-cie, by nie przesuwał ekranu bo wszystkie liczby mieszczą się wtedy w kilkunastu linijkach i mamy kolejne 2 sekundy mniej. Ale najwięcej dała zmiana parametrów w pierwszej pętli FOR, zaczynamy od 1 a nie 2 i dodajemy STEP 2 i mamy wynik poniżej 53 sekund. No ale to już jest nielegalny doping. :D   A BBC Micro nawet bez tego jest szybszy.

PS. Pamiętam że Bajtek kiedyś promował taki język do Atarki o nazwie Action, czy ktoś coś.. ?
PS2. Wydaje mi się że fani CP/M-a woleli Pascala. Zresztą Z80 w C128 cyka tylko na 2MHz, więc szału się nie spodziewam.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: steev w 2015.12.01, 08:35:54
A inne BASICi na ZXa?
Wg wiki było sześć wersji Beta i cztery Mega...
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2015.12.01, 21:50:11
C+4 - 2:16
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Rzeznik w 2015.12.01, 22:12:31
Amiga 500 - Microsoft Basic 1.0 - 0:30 (sprawdziłem w winuae, konf-stock a500)

Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: matofesi w 2015.12.02, 08:28:29
No to jeszcze odpaliłem Port BBC BASIC'a na Spectrum (http://mdfs.net/Software/Spectrum/BBCBasic/) - 1:22
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2015.12.02, 09:52:12
ZX81 - 13:12

Po małej zmianie, by wyświetlał wynik jeden po drugim, bo bez tej zmieny przerywał program jak miał przewinąc ekran. Ale w przypadku ZX81 nie chyba się co dziwić, bo proceosr generuje też obraz...
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: steev w 2015.12.02, 12:40:19
A inne BASICi na ZXa?
Wg wiki było sześć wersji Beta i cztery Mega...
Wyniki z fuse:
wbudowany - 4:11
beta 3.1      - 4:20
mega 4        - 4:22
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Phonex w 2015.12.02, 16:58:01
Nie pomaga nawet jak się użyje funkcji modulo Beta Basica (3.0), czyli FN v(i,j)
30 IF MOD (i,j)=0 THEN GO TO 80
Jest jeszcze gorzej - 4:43
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: wojtek9989 w 2015.12.05, 20:54:21
I jeszcze jeden test:

C128 CP/M Basic Microsoft - 3:28
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.01.07, 16:46:49
Trafiłem na kolejne porównanie tym razem tylko CPC, C64 i C128, liczące w kodzie maszynowym liczbę PI.
http://www.cpcwiki.eu/forum/demos/a-mathematical-demo/msg116787/#msg116787
Jest tam dsk dla CPC i link na forum Lemon64.com gdzie mają wersję na Comody.
Można wybrać do ilu cyfr po przecinku i na 800 wynik wygląda tak:

    Amstrad CPC6128 - 120.1 sec
    Commodore 128/PAL (fast mode) - 123.6 sec
    Commodore 64/PAL (screen off) - 232.9 sec

Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.09.23, 21:41:16
Dawno nikt tu nie zaglądał a jeszcze z popularnych maszyn brakuje nam wyniku z Atari ST Basic.
Czy ktoś ma dostęp do tej maszyny (lub emulatora) i nieco czasu pomieszanej z ciekawością? :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.09.24, 20:58:01
Ja mam :) Tylko które programy są obowiązujące w testach, ponieważ się nieco zgubiłem.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.09.24, 22:52:30
Programiki które proponowałem w poście 106 na str 8 jakoś nikogo nie zainteresowały...
 ale programik w Basicu do wyszukiwania liczb pierwszych z YouTuba z posta 137 już tak:
https://www.youtube.com/watch?v=pxye-RbKFpY

10 FOR i=2 TO 1000
15 k = INT(SQR(i)) + 1
20 FOR j = 2 TO k
30 k1 = i / j
40 k2 = INT(k1)
50 IF k1 = k2 THEN GOTO 80
60 NEXT j
70 PRINT i
80 NEXT i

W miarę możliwości zachować taką samą postać, nie usuwać zbędnych spacji itp.
Można dodać na początku i końcu coś co zmierzy czas wykonywania programu w sekundach.
Ewentualnie dodać jakieś bipnięcie które ułatwi ci pomiar stoperem. ;)

A oto znane nam rezultaty:

BBC Master - 0'25 - znalezione na innym filmiku, ale ciut oszukał bo dodał do niektórych zmiennych %, choć nie sądzę by taka optymalizacja dała mu więcej niż 2 sek.

Amiga Basic   - 0'30
BBC Micro       - 0'47 - wszystkie trzy BBC mają MOŚki, tu 2MHz, poniższy 1MHz, a powyższy 4MHz
BBC Electron    - 1'04
Sam Coupe       - 1'14
CPC 6128 (80)    - 1'19  - w 6128 są ciut szybsze procedury
CPC 464 (40)    - 1'22  - 2 sek wolniej niż w 80 kolumnach
C128 (80)       - 1'23  - przypuszczam że tryb 80 kolumn przestawia procka na 2MHz
C64           - 2'15
C+4           - 2'16
C128 (40)       - 2'48
C128 CP/M      - 3'28  - Microsoft Basic
Atari XL/XE    - 3'50
MSX1           - 3'53
ZX 48           - 4'08(4'11)  - podano 2 różne pomiary, oba ze stopera
ZX 128         - 4'50
TI99/4A       - 5'58  - to stary 16-bitowiec z 3MHz
ZX81         - 13'12


Jakie Bejziki można by jeszcze przetestować?   Może Meritum, albo Amosa na Amidze, lub GW-Basic na PC z 8086 lub 8088, czy co tam jeszcze ludzie w domach mają?  A może ktoś ma karta z Basiciem na NESa?  ;)

Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.09.25, 12:01:16
Mam na biurku QL, więc wrzucam wyniki z niego. Stock maszyna ze 128k, nie ma różnicy pomiędzy mode 4 i mode 8 - wychodzi zawsze 80 sekund. Poniżej listing z modyfikacjami, które nie wpływają na wynik końcowy.

99 CLS
100 d_start=DATE
110 FOR i=2 TO 1000
120 k=INT(SQRT(i))+1
130 FOR j=2 TO k
140 k1 = i/j
150 k2 = INT(k1)
160 IF k1=k2 THEN GO TO 190
170 NEXT j
180 PRINT i
190 NEXT i
200 d_end = DATE
210 d_diff = d_end-d_start
220 PRINT d_diff
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: pear w 2016.09.25, 13:44:36
Amstrada NC 100 jeszcze nie było ?
Wyjąłem z szufladki, włożyłem bateryjki i wyszło dokładnie 64,8 sekund :) (wykorzystałem wbudowaną zmienną TIME do pomiaru czasu)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.09.25, 17:05:53
No no bardzo ciekawe wyniki...  Dzięki za to i prosimy o więcej. A to już najdłuższa lista jaką widziałem która porównuje coś na tak wielu różnych maszynach. :)

QL z Motorolką 7.5MHz o 8bitowej linii danych ma wynik taki jak CPC. Oj chyba programistów to Sinclair miał takich sobie, bo w ZX też się nie popisali. Choć pewnie to też wina pośpiechu ich szefa. ;)

A NC ma BBC Basic na Z80 4MHz i wynik identyczny jak na takim samym Basicu w Electronie z MOS 1MHz.

Nie mogę się doczekać czego jeszcze się dowiemy, bardzo mnie ciekawi np wynik ST i Apple II. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.09.25, 17:09:35
Oj chyba programistów to Sinclair miał takich sobie, bo w ZX też się nie popisali. Choć pewnie to też wina pośpiechu ich szefa. ;)
SuperBASIC w QL jest bardzo fajny i całkiem rozbudowany. Ale szybkością to raczej nie grzeszy. Jeśli tego weekendu starczy, to jeszcze wrzucę wyniki z Apple IIGS i Atari ST.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2016.09.25, 17:47:01
Ja postaram sie jutro zrobic test na vic-20 i meritum. Jutro wymieniam romy w Apple II+ i jak ruszy to tez zrobie.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: pear w 2016.09.25, 17:51:28
Ja jeszcze przy okazji dorzucę Cambridge Z88 i Sharp PC-1500.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2016.09.26, 21:42:07
Vc-20    1:50
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2016.09.26, 21:51:37
Meritum (Z80 1.6 MHz)       3:23
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: wojtek9989 w 2016.09.26, 21:53:12
Hmmmm....... ciekawe czy będzie jakaś różnica na tc2048 względem zx spectrum się sprawdzi :-)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: trojacek w 2016.09.26, 22:06:10
A z czego miałaby ta różnica wynikać? Moim zdaniem wynik będzie identyczny, z dokładnością do błędu pomiaru.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: pear w 2016.10.05, 18:59:57
Sharp PC-1500: 07'49"
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.10.05, 21:16:40
Atari MEGA ST (8 MHz, tryb ST-High, ST BASIC) - 44 sekundy.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.10.05, 22:59:19
Podejrzewam że tryb graficzny ma znikomy wpływ, ale liczyłem że będzie szybszy od Amy, a może nawet od BBC Mastera z MOŚkiem 4MHz. Niby 3ie miejsce na naszej liście ale tylko o 3 sek lepszy od Micro 2MHz. To trochę rozczarowuje. Może GW-Basic jest na ST szybszy. :)

Ten Sharp to taki kieszonkowy Meritum, nie wiem ile cyka, ale jak na taką starą kieszonkę (1981) to cud że ma Basic.

Co do Timexa to zgaduję że raczej 2068 może się bardziej różnić od ZX-a niż 2048. :)   
A propo, ze Spectrum mamy 2 pomiary 4'08 i 4'11 ale który bliższy prawdy?

Vic jest szybszy od Commody, a Apple jeszcze nie zapalił silnika. Ciekawe ciekawe. :)

Czy ma ktoś Basic na jakiegoś stareńkiego PC takiego co ma kilka MHz ?




Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: steev w 2016.10.05, 23:15:03
A propo, ze Spectrum mamy 2 pomiary 4'08 i 4'11 ale który bliższy prawdy?
Jesli mówisz o moim pomiarze 4:11, to był on robiony na emulatorze - chodziło mi o różnice pomiędzy ZX Basic, Beta Basic i Mega Basic. Można go więc nie brać pod uwagę.

Czy ma ktoś Basic na jakiegoś stareńkiego PC takiego co ma kilka MHz ?
Ja mam kalkulator programowalny 2MHz :)
Chyba z ciekawości aż sprawdzę...
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2016.10.06, 06:30:53
Vic jest szybszy od Commody, ... Ciekawe ciekawe. :)

I tutaj może właśnie przez uboższą grafikę.
Apple II - mam już obraz, ale losowe znaki na ekranie, nie zgłasza się basic. Jeszcze walczę :)
W Apple II/II+/IIe wynik może zależeć od wersji basica. Pierwotnie był Wozniaka, potem w II+ od MS.
BBC Master Compact ma Mośka 2MHz... ale basic faktycznie ma bardzo szybki, na YT jest kilka filmików reklamowych z TV BBC, gdzie chwalą się szybkością BBC w basicu. Niestety gry są dużo ciekawsze i bardziej grywalne na ZX i wiele innych 8-bit. Porównajcie sobie Commando :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: pear w 2016.10.06, 17:51:18
Garść pomiarów:
Cambridge Z88:
01'27"

Timex TS2068 (NTSC), własny BASIC:
04'17"

Timex TS2068 ten sam, ale BASIC na cardridge'u, zgłasza się jako Sinclair Spectrum Mod. B:
04'00"

Enterprise 128 IS-BASIC (fabryczny cardridge):
07'44"

Enterprise 128, ten sam, ale z wyłączonymi przerwaniami systemu EXOS:
05'52"
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.10.06, 18:33:04
Atari MEGA ST (8 MHz, tryb ST-High, GFA BASIC) - ~7 sekund (dokładnie 6,75). Niestety musiałem nieco zmodyfikować program, ponieważ nie można tam zrobić GOTO poza pętlę FOR, więc zostawiam szanownej komisji do oceny czy się liczy.

t=TIMER
FOR i=2 TO 1000
  k=INT(SQR(i))+1
  FOR j=2 TO k
    k1=i/j
    k2=INT(k1)
    EXIT IF k1=k2
  NEXT j
  IF k1<>k2
    PRINT i
  ENDIF
NEXT i
endtime=t
PRINT INT(TIMER-t)*5/1000
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.10.07, 00:41:11
dely - W tym GFA bardziej niż ten skok zastanawia mnie czy to interpreter czy kompilator, bo jak na ten 1szy to wynik jest szokujący. Jedynym (jak na razie) kompilatorem testowanym tu był ToBoSem na Speccy - 0'27.
Zwykle nawet usunięcie zbędnych spacji i/lub wciśnięcie ile się da rozkazów w każdej linii nieco skraca czas wykonania. A propo nr linii, nie trzeba czy nie można ich pisać w GFA ?

2068 - hmm - Zwykle NTSC-owe wersje są nieco szybsze niż PAL-oskie.

Enterprise - Zawsze gdy czytałem o jego superowych trybach graficznych myślałem że z lepszą promocją pozamiatał by Europę, ale z tak wolnym Basiciem chyba jednak nie.

Cambridge - Czy zna ktoś historię tego komputera? Opracowali go w Sinclair Research ale ukazał się po tym jak Amstrad kupił Sinclaira i prawo do nazwy i niemal jednocześnie wydali własną wersję tego kompa jako NS. Tylko tyle wiem.

Czy ma ktoś obcykany emulator Apple?   Albo Meritum 2 ze szybszym zegarem?
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.10.07, 06:37:15
dely - W tym GFA bardziej niż ten skok zastanawia mnie czy to interpreter czy kompilator, bo jak na ten 1szy to wynik jest szokujący.
To interpreter, ale można jeszcze dodatkowo skompilować. Wyjdzie pewnie jeszcze szybciej ;)

Cytuj
A propo nr linii, nie trzeba czy nie można ich pisać w GFA ?
Nie można.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: pear w 2016.10.07, 07:57:38
MEGA ST ma koprocesor ? To by tłumaczyło różnicę.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.10.07, 08:58:08
Nie. To zwykle ST tylko w pro obudowie.  GFA jest po prostu bardzo szybki. Moze w weekend starczy czasu, to zrobie ten sam program w GFA na A600.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Tygrys w 2016.10.07, 09:51:11
Wydzieliłem wątek, bo z wielkie offtopu zrobił się ciekawy watek ;-)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: steev w 2016.10.07, 10:01:09
Ja mam kalkulator programowalny 2MHz :)
Chyba z ciekawości aż sprawdzę...
No i sprawdziłem.
Muzealny już wręcz Casio fx-7500G
Procesor HD62023 (lub μPD1037) pędzony zegarem 2MHz.
Niewielkie modyfikacje programu polegały na symulowaniu pętli FOR i zamianie wyświetlania na ekranie na zapis do zmiennej (plus zliczanie wyszukanych liczb)
Wyszukanie wszystkich 167 liczb zajęło mu 3:17
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: Phonex w 2016.10.07, 17:59:38
A propo, ze Spectrum mamy 2 pomiary 4'08 i 4'11 ale który bliższy prawdy?
Jesli mówisz o moim pomiarze 4:11, to był on robiony na emulatorze - chodziło mi o różnice pomiędzy ZX Basic, Beta Basic i Mega Basic. Można go więc nie brać pod uwagę.

Tak przy okazji - na emulatorze ZX Spin v0.666 wychodzi 3:59. O 4% za szybki!
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.10.07, 21:56:46
Apple IIGS (2.8 MHz, 4 MB):

ProDOS BASIC 1.5: 46 sek
Apple IIGS BASIC: 1 min. 57 sek.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.10.08, 05:54:00
Jak rozumiem ten drugi jest w ROMie?

Ciekawe czy korzysta ze 16bitowych rejestrów w MOŚku. Czy da się IIGS przełączyć na jakiś tryb zgodności ze zwykłym II włącznie z prędkością procka?
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: dely w 2016.10.08, 09:10:25
Jak rozumiem ten drugi jest w ROMie?
Nie, oba są ładowane z dysku.

Ciekawe czy korzysta ze 16bitowych rejestrów w MOŚku. Czy da się IIGS przełączyć na jakiś tryb zgodności ze zwykłym II włącznie z prędkością procka?
Każdy 65816 "budzi się" w trybie zgodności z 6502, dopiero potem można go przełączyć w tryb 16-bit. A co do zgodności z oprogramowaniem, to nie spotkałem żeby cokolwiek z Apple II nie dało się uruchomić.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: pear w 2016.10.14, 12:29:01
Taka ciekawostka.
Enterprise 128 z podłączonym sprzętowym emulatorem ZX Spectrum: 04'06"

Niemal identycznie jak na prawdziwym ZX Spectrum :o
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: tooloud w 2016.10.22, 15:21:01
ten sam program, Amiga 600 z Furią v2, GFA BASIC, wersja 3.51

interpreter > wypluło 3.26

ponieważ śmignęło to momentalnie - to chyba wynik to 3 i 1/4 sek?

w wolnej chwili zainstaluję kompilator, ale tutaj Furia robi swoje.

Atari MEGA ST (8 MHz, tryb ST-High, GFA BASIC) - ~7 sekund (dokładnie 6,75). Niestety musiałem nieco zmodyfikować program, ponieważ nie można tam zrobić GOTO poza pętlę FOR, więc zostawiam szanownej komisji do oceny czy się liczy.

t=TIMER...
[/quote]
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.10.22, 16:54:17
To jaki ta Furia ma procek i MHz?
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: tooloud w 2016.10.23, 02:34:39
CPU Motorola MC68ec020/33 MHz
FPU Motorola MC68882/40 MH

Generalnie daje to mniej więcej x10 dopałkę
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2016.11.08, 16:26:57
Wreszcie uruchomiłem Apple'a II+

Wynik: 1:56


Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.11.08, 20:42:06
Czyli tak jak GS, który zapewne pracował w trybie zgodności choć potrafiłby szybciej. :)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: flypeter w 2016.11.08, 21:03:38
Zegar w Apple II to 1MHz
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2016.11.25, 18:06:14
Trafiłem dziś na filmik w YT z porównaniem prędkości Basica w A1000, 520ST, Spectrum i BBC, z angielskiej TV z roku 1986: https://www.youtube.com/watch?v=PrgE_C-ZMpY

We filmie jest listing a pod filmikiem są podane wyniki. Ciekawe są niektóre komentarze np że GFA Basic na Atari jest 10 razy szybszy niż ST Basic. W testach jakie koledzy zrobili w tym wątku wychodzi raczej że 6x. ;)

A inny komentator pod filmem twierdzi że z różnicy ilości taktów w rozkazach między Z80 a MOS wynika że ten 1szy musi być taktowany 2.5 raza szybciej by osiągnąć podobny wynik. hmm Ciekawe.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2019.01.09, 23:54:04
Jeszcze jeden test Basica na różnych zabytkach.
http://www.primostudio.pl/nfsk/benchmark.html
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: MCbx w 2019.01.22, 01:55:04
A to i ja się dorzucę. Moje testy (http://oldcomputer.info/8bit/benchmarks/index.htm).
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2019.01.22, 04:01:18
Chcesz powiedzieć że to twoja stronka?

Jaką metodą mierzyłeś czas?  Stoperem?
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: MCbx w 2019.01.23, 01:09:05
Czas mierzony stoperem od wciśnięcia RETURN po RUN do końca obliczeń.
Jeszcze kilka obserwacji: Czasami trzeba to było uśrednić - KC85 potrafił z jakiegoś powodu wahać się nawet o 4 sekundy w kolejnych uruchomieniach. W niektórych przypadkach istniały różnice w zależności od egzemplarza.
Nie wyłączałem żadnych funkcji ekranowych, stąd benchmarki wyświetlania należy brać z przymrużeniem oka. Dodatkowo inaczej działa ekran wysokorozdzielczy, a inaczej LCDek w niemal-kalkulatorze.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2019.01.23, 02:47:20
Przy wyświetlaniu literek jest różnica czy run wpiszesz na dole ekranu czy wpierw dasz CLS.
Część kompów ma jakieś polecenia które sprawiają że sam może sobie zmierzyć czas. np w CPC:
W pierwszej linijce piszesz  t1=TIME  a po ostatnim NEXT:t2=TIME:?(t2-t1)/300  i mamy czas programu w sekundach. Tak samo można w C64 tylko że dzielimy na 50 zamiast na 300. :)

W innych kompikach można na końcu dodać komendę które emituje sygnał dźwiękowy, bo budowa naszego mózgu sprawia że nasza reakcja na obraz jest o ok sekundę wolniejsza niż na dźwięk. Jak nie ma takiej komendy to można PRINT CHR$(7), lub inny kod w niektórych kompach to emituje pisk. To tak a propo stopera.
Ale spoko że chciało ci się tyle testów robić. :)

Przejrzałem tą twoją stronkę, fajne fotki, ale przy niektórych kompach jest parę błędów w podanych parametrach, oraz przemycone kilka stronniczych opinii w takiej formie jakby to miały być fakty, jak np że CPC ma wolną stację.
Z czym ty tą stację porównałeś że doszedłeś do takich wniosków??
Jak to przeczytałem to zaraz zajrzałem do opisu C64, który ma najwolniejszą stację w historii komputeryzacji, 8-krotnie wolniejszą niż w CPC, czy jest tam podobna adnotacja, ale nie ma!

Pomyślałem sobie, każdy pisze na swojej stronce co mu się podoba, a że przy okazji szuka guza to cóż, może ma czarny pas. ;)
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: MCbx w 2019.01.23, 10:56:46
Jeżeli sprzęt potrzebuje ok. 30 sekund na załadowanie CP/Ma to są dwie możliwości:
 - Powolny flop.
 - Słaby egzemplarz stacji.
Nie będę porównywał maszyny, powiedzmy wprost, praktycznie CP/Mowej do mikrokomputera z 6502 ze stacją na porcie szeregowym. To zupełnie dwie różne maszyny i dwie różne filozofie pracy, C64 z reguły nie wymaga stałego odwoływania się do napędu, a ekosystem CP/M jest ściśle dyskowy, i tutaj stacja służy do czegoś więcej niż początkowe załadowanie programu i końcowe zapisanie pracy - jest podstawowym środkiem przechowywania danych, a w niektórych programach obliczeniowych wręcz tworzy coś w rodzaju swapa (późne wersje mumath).
W takich przypadkach obsługa na moim CPC staje się problematyczna tak bardzo, że cały obliczeniowy zysk jaki CPC ma względem np. C128 w trybie CP/M zmniejsza się znacząco.

Dodam jeszcze jedną rzecz: Otóż podczas tych pomiarów uroiło mi się, że sprawdzę komputery z CP/M czymś w rodzaju benchmarka wszystko-w-jednym. Napisałem więc program, który w skrócie wyliczał szeregi liczb, przechowywał je dyskowo, odczytywał i progował do macierzy rzadkiej, którą następnie przeliczał i wyprowadzał wyniki. W ten oto sposób maszyna z 2MHz procesorem była szybsza niż 4MHz :).
Jak? Wbudowany kontroler ekranu oraz znacznie szybszy napęd dyskowy. To nie był dobry benchmark.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2019.01.23, 14:14:25
Nie wiem skąd ty wytrzasnąłeś takiego CPMa czy też stację.
Normalnie wersja 2.2 z 4ej strony dysków systemowych uruchamia się w 4 sek, a 3.0 z 1ej strony w 7sek.

Maszyna wprost CPM-owa? - Co to u licha znaczy?  Czy C128 też jest wprost CPM-owy? Wszak wspominano o tym trybie pracy w reklamach, choć nie był to jedyny tryb w jakim pracował. Czyli dokładnie tak samo jak 6128, bo miał też Amsdosa. PCW miał też Locoscript (pod którym można było kopiować pliki czy też doinstalowywać aplikacje, pisane specjalnie pod niego, czyli był to alternatywny system operacyjny. Podobnie było z niektórymi MSXami czy ZX+3. tzn miały alternatywny system operacyjny. Dla wielu posiadaczy ten inny od CPMa system był jedynym jaki używali przez lata.

Co innego np Osborne czy Keypro, te o ile mi wiadomo nie miały alternatywy, dlatego takie maszyny nazwałbym CPM-owymi. :)

PS.: C64 produkowano od 1982 do 1993 czyli 11lat, napisałeś że to najdłużej produkowany komputer.
Tymczasem Apple II od 77 do 90 czyli 13 lat.
Atari 8bit od 79 do 92, też 13 lat, Amstrady PCW od 85 do 98, czyli też 13 lat.
Nie wiem dokładnie w którym miesiącu zaczynano i kończono więc może być że nieco krócej.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: rzookol w 2019.01.23, 14:26:57
Apple II nie produkowano przez 13 lat. Ostatnie Apple to Apple II Gs ale to zupełnie inna maszynka. Atari 8bit to cała gromada maszyn, 800Xl nie produkowano od drugiej połowy lat 80tych. Amstrady PCW podobnie, PCW16 nawet nie był kompatybilny ze starymi.

Do C128 trzeba mieć CP/M Fast bo inaczej nie warto tego w ogole uruchamiać.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: ZbyniuR w 2019.01.23, 15:00:16
W Atari w tej gromadzie maszyn od początku do końca jeden z modeli miał 64K RAM, i taki sam procek i Basic, a obudowa w C64 przecież też się zmieniała.
W Apple GS nie był jedynym ale jednym z modeli produkowanych w późniejszych latach. Podobnie w C= oprócz C64 produkowano przez pewien czas jednocześnie C128.
https://en.wikipedia.org/wiki/Apple_II_series#Timeline_of_Apple_II_and_Family_models
W PcW16 faktyczne nie był kompatybilny z poprzednimi, ale produkowano go tylko ze 3 miesiące o ile dobrze pamiętam, więc to niewiele zmienia. Przez cały czas produkowano modele z 256 oraz z 512K RAMu z takim samym prockiem.

C64 miały 4 wersje płyty głównej i tyle też wersji klawiatur. Późniejsze wersje miały innego (słabszego) SIDa. To ile razy zmieniano dedykowaną mu stację dysków to nawet nie podejmuję się policzyć. A skoro w C64 nie zmienia to twierdzenia że był to ciągle ten sam model, to takie zmiany u innych też nie powinny mieć wpływu na takie twierdzenie.

Choć w Applu jestem skłonny przyznać że późniejsze modele (nawet pomijając GS) miały szybsze zegary i więcej RAMu. Co istotnie wpływało na osiągi komputera. Czyli nie były takie same. Mimo że te starsze dawało się tak podkręcić. Ale nadal zostają 2 komputery które produkowano dłużej niż C64.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: MCbx w 2019.01.23, 17:27:53
Z jakiegoś powodu jak ktoś z ludzi, z którymi rozmawiałem kupował CPC ze stacją dysków, to od razu na pierwszy ogień nie szły, pomimo możliwości, gry czy muzyka. Był Mumath, program do wykresów, baza danych i inne narzędzia CP/Mowe, co umożliwiło "wprzęgnięcie" tej maszyny w większy ekosystem. Z drugiej strony - nie rozmawiałem ze scenowcami. Możliwość wygodnej pracy w CP/M, systemie już wówczas nieco starszym lecz z dobrą bazą softu naukowego, była bardzo dużym argumentem. C128 ma tryb CP/M, ale jest on mniej wygodny w użytkowaniu, począwszy od wyświetlania na obsłudze stacji dysków skończywszy i rzadziej był w tym zakresie wykorzystywany.

U mnie uruchamianie czegokolwiek ze stacji na CPC w CP/M (3.0) jest powolne, choć rzecz jasna nie tak jak w C128 gdzie wąskim gardłem jest interfejs - w CPC zdaje się to być napęd lub kontroler.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: tooloud w 2019.01.27, 00:44:37
Apple II nie produkowano przez 13 lat. Ostatnie Apple to Apple II Gs ale to zupełnie inna maszynka.

To częściowa prawda: ostatni (wprowadzony) model z serii Apple II to Apple IIc Plus z zegarem 4Mhz. Cofając się z roku 1988 o rok wstecz mamy Apple IIe Platinium i dopiero w 1986 IIGS. A ostatnim Apple II... była karta Apple IIe do Macintosha (odpowiadała części układu Apple IIe wewnątrz płyty Apple IIGS).

Apple IIGS produkowano do 1992 roku. Jak na moją matematykę to ponad 14 lat serii Apple II.
Tytuł: Odp: Interpretery BASIC na różne platformy - test wydajnościowy
Wiadomość wysłana przez: PROTON w 2019.02.23, 21:13:00
C128 80 znaków Basic 8 - 1:23