Быстродействие различных эмуляторов

Все об эмуляции ПК-01 "Львов" на современных платформах
als
Posts: 426
Joined: 18 May 2016, 19:55

Re: Быстродействие различных эмуляторов

Post by als »

sadfsdfsdaf,
Доп.
А ні! Вибачаюсь! Це я щось наплутав....
Мабуть “Вильнюс-Бейсик на УК-НЦ “ малось на увазі

Электроника МС 0511
https://ru.wikipedia.org/wiki/%D0%AD%D0 ... D0%A1_0511

А НЕ

БК (семейство компьютеров)
https://ru.wikipedia.org/wiki/%D0%91%D0 ... %BE%D0%B2)
als
Posts: 426
Joined: 18 May 2016, 19:55

Re: Быстродействие различных эмуляторов

Post by als »

як виявилось в повідомленні
viewtopic.php?f=12&t=380&sid=80b1bae75e ... f851#p5124
в коді "Test1.LVT" є помилка "LXI HL, $255", а повинно бути "LXI HL, 255" або "LXI HL, $FF".
Тому порівняння швидкості тесту Бейсіка та Ассемблеру невірні.
Вірні порівняння мабуть все таки ось такі:
SASemulator1.44Beta:
BASIC:
* SASemulator1.44Beta 2279 / 113,95
256*256*20= 1 310 720 усього циклів за 2279 сек
575,12944273804300131636682755595 циклів в сек

ASM:
256*256*256=16777216 усього циклів за 207 сек
81049,352657004830917874396135266 циклів в сек
81049/575 = 140,95478260869565217391304347826 разів різниця між Бейсіком та Ассемблером!

В 140 раз різниця ВАСІКА та АСМа ??!?! Дивно!
Ще раз...
Виходить що різниця швидкості тесту Бейсіка та Ассемблеру в В 140 раз?!
Дивно!

Хтось щось може підтвердити або спростувати ?
Невже така різниця ?! Чи, що я роблю не так ?

Виправлений тест від помилки LXI HL, $255
Test1.LVT
(95 Bytes) Downloaded 4235 times
Project.dpr - Виправлений вихідний код "Test1.LVT" (для МАДЛ2021)
Project.7z
(586 Bytes) Downloaded 4229 times
als
Posts: 426
Joined: 18 May 2016, 19:55

Re: Быстродействие различных эмуляторов

Post by als »

Добрався до ВАСИКів виміряти швидкість виконання коду.
І от що ми маємо, якщо запустити програму на ВАСИКах.
Code3.bas:

Code: Select all

200 b1=0:b2=0:b3=0:CO=0
210 Print "Start..."
220 For b3=0 to 255
250 For b2=0 to 255
260 For b1=0 to 255
270 Next b1
280 Next b2
290 Next b3
300 co=co+1:Print(co)
310 If co < 20 then Goto 220
320 Print"END."
Длительность выполнения 20 циклов (в секундах)/ средняя длительность виполнения 1 цикла (в секундах)

Code: Select all

Turbo Basic.ver.1.0  (в середовищі TB.EXE)   273  /  13,65
Turbo Basic.ver.1.01 (в середовищі TB.EXE)   276  /  13,8
Turbo Basic.ver.1.1  (в середовищі TB.EXE)   276  /  13,8
Turbo Basic 1.0      (в середовищі TB.EXE)   276  /  13,8

Turbo Basic 1.0         (exe-файл)           294  /  14,7
Turbo Basic.ver.1.0     (exe-файл)           296  /  14,8
Turbo Basic.ver.1.1     (exe-файл)           297  /  14,85
Turbo Basic.ver.1.01    (exe-файл)           298  /  14,9


GW-BASIC.ver.3.22                            382  /  19,1
GW-BASIC.ver.2.02                            389  /  19,45
GW-BASIC 2.02 Bondwell                       391  /  19,55
GW-BASIC.ver.3.23                            534  /  26,7
GW-BASIC.ver.2.01 TeleVideo Corporation      554  /  27,7
GW-BASIC.ver.3.20                            570  /  28,5
GW-BASIC 2.01 Olivetti                       586  /  29,3
GW-BASIC 2.00 Olivetti                       589  /  29,45

QBASIC                                      1932  /  96,6

als
Posts: 426
Joined: 18 May 2016, 19:55

Re: Быстродействие различных эмуляторов

Post by als »

Загальна таблиця всього, що тут в цій темі вимірювалось.
Таблиця “вирівняна” на обробку кількості 256^4 циклів та 20 * (256^4) циклів.

Code: Select all

http://pc01.lviv.ua/forum/viewtopic.php?f=12&t=380#p5126
Среда запуска                | что запущено       |  результат выполнения (в сек) 20 пунктов теста  / 1 пункт теста (в среднем)

WinXP(32bit)                 |    D7FORM.exe      | 110      /  5,5
WinXP(32bit)                 |    D7Console.exe   | 110-111  /  5,55
WinXP(32bit)                 |fpc2_6_0_console.exe| 336      /  16,8   
WinXP(32bit)                 |    1TP.EXE         | 455-460  /  23
WinXP(32bit)                 |    2TP.EXE         | 460-480  /  23-24
WinXP(32bit)                 |fpc3_0_4_console.exe| 506      /  25,3

WinXP(32bit)                 |    D1FORM.EXE      | 1520     /  76


WinXP(32bit)-DosBox-Win3.11  |    D1FORM.EXE      | 5220     /  259-263
WinXP(32bit)-DosBox-Win3.11  |    2TP.EXE         | 10260    /  513  
WinXP(32bit)-DosBox-Win3.11  |    1TP.EXE         | 10280    /  514

WinXP(32bit)-DosBox          |    1TP.EXE         | 10060    /  503
WinXP(32bit)-DosBox          |    2TP.EXE         | 9880     /  494


ANDROID 4.4.2:

Android-GUIpascal                 |   D7Console.pas   | 1200 /  60
Android-GUIpascal-в фоновом режиме|   D7Console.pas   | 1200 /  60
Android-APK-файл                  |   D7Console.APK   | 1200 /  60

Android-APK-файл-в режиме экран погашен |D7Console.APK| 1534 / 76,7

Android-MagicBox-Win3.11          |   D1FORM.EXE      | 17420 /  871

Android-MagicBox                  |   1TP.EXE         | 25200 / 1260

Android-MagicBox-Win3.11          |   1TP.EXE         | 25805 / 1290,25     





Turbo Basic.ver.1.0  (в середовищі TB.EXE)             69888  /  3494,4
Turbo Basic.ver.1.01 (в середовищі TB.EXE)             70656  /  3532,8
Turbo Basic.ver.1.1  (в середовищі TB.EXE)             70656  /  3532,8
Turbo Basic 1.0      (в середовищі TB.EXE)             70656  /  3532,8

Turbo Basic 1.0         (exe-файл)                     75264  /  3763,2
Turbo Basic.ver.1.0     (exe-файл)                     75776  /  3788,8
Turbo Basic.ver.1.1     (exe-файл)                     76032  /  3801,6
Turbo Basic.ver.1.01    (exe-файл)                     76288  /  3814,4


GW-BASIC.ver.3.22                                      97792  /  4889,6
GW-BASIC.ver.2.02                                      99584  /  4979,2
GW-BASIC 2.02 Bondwell                                100096  /  5004,8
GW-BASIC.ver.3.23                                     136704  /  6835,2
GW-BASIC.ver.2.01 TeleVideo Corporation               141824  /  7091,2
GW-BASIC.ver.3.20                                     145920  /  7296
GW-BASIC 2.01 Olivetti                                150016  /  7500,8
GW-BASIC 2.00 Olivetti                                150784  /  7539,2

QBASIC                                                494592  /  24729,6



http://pc01.lviv.ua/forum/viewtopic.php?f=12&t=380&start=15#p5694

Test1.LVT (АСМ-КР580)                                1059840  /  52992


http://pc01.lviv.ua/forum/viewtopic.php?f=12&t=380#p5122
http://pc01.lviv.ua/forum/viewtopic.php?f=12&t=380#p5689

Агат-(3)Apple ][ Plus                  119078912  /  5953945,6
Башкирия(2017.12.01)- Орион-128"       130285568  /  6514278,4
* Башкирия(2017.12.01)-Львов ПК-01     145752064  /  7287603,2
BK-0010_01                             148373504  /  7418675,2
* SASemulator1.44Beta                  149356544  /  7467827,2
Android7 - BkEmu.1.0.0 (3cky) —        150405120  /  7520256
Башкирия(2017.12.01)-MSX2              158269440  /  7913472
Башкирия(2017.12.01)-MSX               159711232  /  7985561,6
* Эмулятор 3000(v6.0)                  163446784  /  8172339,2
blueMSX - MSX-2                        168361984  /  8418099,2
Atari800Win                            186515456  /  9325772,8
WindowsXP - Эмулятор БК 0010(01).3.0   193986560  /  9699328
WindowsXP - Эмулятор БК 0010(01).2.6   197918720  /  9895936
* LVOV105                              253100032  /  12655001,6
Android4 - BkEmu.1.0.0 (3cky) —        304807936  /  15240396,8
* Є ще й дві версії якихось компіляторів BASIC-IBM (наче б то так називаються) та Microsoft BASIC 5.36 (начебто 5.36) але я в них не розібрався та й бажання особливого не було.
als
Posts: 426
Joined: 18 May 2016, 19:55

Re: Быстродействие различных эмуляторов

Post by als »

Цікаві висновки з таблиці.

* Скомпільований exe-файл в Turbo Basic виконується повільніше ніж в тому ж середовищі (TB.EXE). Нехай не набагато, але все таки повільніше, приблизно 1,07-1,08 разів.

* Самий швидкий GW-BASIC.ver.3.22 виконує код повільніше ніж скомпільований в
самому швидкому Turbo Basic.ver.1.0, - в 1,4 рази, що особисто для мене є цікавим, що не в десятки, навіть й сотні разів повільніше. Якщо брати самі повільніші GW-BASIC 2.00 Olivetti та Turbo Basic.ver.1.01(exe-файл), то в 2 рази.

* QBASIC працює повільніше від Turbo Basic в 6-7 разів та від GW-BASIC, в 3-5 разів.

* Test1.LVT (АСМ-КР580) працює повільніше від QBASIC, усього в 2 рази. А від GW-BASIC, в 7-10 разів. Від Turbo Basic, повільніше в 14-15 разів.

* Turbo Basic у порівнянні з компіляцією коду в Дельфі7 (D7FORM.exe) працює повільніше в 635 разів.

* Самий повільний QBASIC серед інших ВАСИКів, працює швидше ніж самий швидкий ВАСИК ретро-машини “Агат-(3)Apple ][ Plus”, в 240 разів. А якщо брати Turbo Basic.ver.1.0 (в середовищі TB.EXE) та “Агат-(3)Apple ][ Plus”, то, - в 1703 рази.

* Скомпільований код в Turbo Basic.ver.1.0 (в середовищі TB.EXE) працює повільніше, а ніж код який скомпільований Turbo Pascal 7 (1TP.EXE), в 150 разів. І ось тут різниця відчувається від GW-BASIC та Turbo Basic, між якими різниця усього в 1,4-2 рази! То Turbo Basic “погано” компілює! А так можна робити висновок, що різниця між інтерпретаторами та скомпільованим кодом, в 140-150 разів. Тому, ще раз підтверджує, те що у ПК-01 різниця між АСМ та ВАСИК все таки не в 60, а в 140 разів!

Ну от наче й всі висновки по цим таблицям для себе я зробив, хто захоче зробить й інші висновки, або перевірить усе у себе на комп'ютері, так як у нього можуть бути й інші результати в залежності від потужності даного комп'ютера.
als
Posts: 426
Joined: 18 May 2016, 19:55

Re: Быстродействие различных эмуляторов

Post by als »

Архів з програмою CODE3.EXE, з вихідним кодом Code3.bas.
Програма скомпільована під різні версії Borland Turbo Basic.

Каталоги яки відповідають даній версії Turbo Basic.
_TBASIC\100 - Turbo Basic 1.0.ver.1.0.English
_TBASIC\100_ - Turbo Basic.ver.1.0.English
_TBASIC\101 - Turbo Basic.ver.1.01.English
_TBASIC\110 - Turbo Basic.ver.1.1.English

В кожному з тих каталогів є файл md5sum.md5, в якому вказані, контрольні суми даних компіляторів Turbo Basic, відповідно.
230222_TestSpeedBasic.7z
(32.48 KiB) Downloaded 4268 times
als
Posts: 426
Joined: 18 May 2016, 19:55

Re: Быстродействие различных эмуляторов

Post by als »

Це сама простенька програма для тестування швидкодії емуляторів, яку не потрібно завантажувати в емулятор або довго набирати.
Годиться, як мінімум для порівняння емуляторів однієї машини, наприклад ПК-01.
Потреба в такій програмі виникла, при написанні SEFA.
Виложу сюди, нехай буде. :-)

Code: Select all

10 CLS
20 x=0
30 x=x+1
40 Print x
50 goto 30
Цифри ліворуч “хв” вказують на тривалість тесту.
Цифри праворуч “=”, - значення змінної X (останньої строки на екрані).
Це все дуже приблизні тест. Які мені потрібні для початкового приблизного налаштування “SEFA”.
LVOV20X5
Тест №1. 1хв=102 2хв=183 3хв=264 4хв=345 6хв=507 7хв=588
10хв=832/10= середнє = 83,2

LVOV105
Тест №1. 1хв=145 4хв=517 7хв=883 8хв=1006
10хв=1248 /10= середнє = 124,8

"Эмулятор 3000(v6.0)"
Тест №1. 1хв=167 4хв=614
10хв=1491/10 = середнє = 149,1

"Башкирия(2021.08.11)"
Тест №1. 1хв=187 3хв=520 5хв=850 9хв=1510
10хв=1672/10 = середнє = 167,2

LVOVulator
Тест №1. 1хв=226 2хв=430 5хв=1040 7хв=1434 9хв=1845
10хв=2046/10= середнє = 204,6

SASEmulator
Тест №1. 1хв=270 3хв=765 5хв=1255 7хв=1740 9хв=2227
10хв=2471/10= середнє = 247,1
SASEmulator щось чомусь самий проворний в даному тесті. :-)
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest