Скажите, а в векторном бейсике есть что-нибудь типа TIME, чтобы замерить время выполнения куска программы (желательно в секундах)?
Есть такой эталонный тест - Ahl's benchmark.
При запуске на Basic 2.5 и 2.997 он даёт одинаковый результат:
Хотя даже на глаз видно, что программа завершается в 2.997 быстрей. Для сравнения на Apple ][e она выполняется 113.7 сек.
Есть новый тест претендующий на эталонность - bench64.
Его особенность в том, что не допускаются никакие оптимизации, типа перенумерации с шагом 1, быстрые нули, запись &число и т.д.
Он берёт за эталон последнюю модель Commodore 64 производившуюся для США и каждый из 8 содержащихся в нём тестов выполняется за минуту, что приравнивается к 100 попугаям
Относительно комода сравниваются остальные Бейсики, например Sinclair Basic даёт 29 попугаев, т.е. в 3,5 раза медленней комодовского, а BBC Micro даёт 202 попугая, т.е. в 2 раза быстрей комода.
Всё это прекрасно, но я не знаю как засечь время на векторном бейсике. Generic версия без таймера внезапно даёт результаты идентичные Спектруму и опять - одни и те же на обоих Бейсиках - 2.5 и 2.997:
Код:
BASIC BENCH INDEX
> I GOOD. NTSC C64=100
1/8 - FOR:
309.5 S; 130.8 /S; I= 19
2/8 - GOTO:
367.8 S; 72.1 /S; I= 16
3/8 - GOSUB:
340.9 S; 61.7 /S; I= 18
4/8 - IF:
181.8 S; 80.1 /S; I= 33
5/8 - IF:
135.3 S; 26.9 /S; I= 44
6/8 - MATHS:
110.1 S; 3.5 /S; I= 54
7/8 - STRING:
125.8 S; 39.2 /S; I= 48
8/8 - ARRAY:
103 S; 16.3 /S; I= 58
OVERALL INDEX= 29
Вероятно, если бы удалось внедрить TIME (как в других вариантах), результаты бы отличались (не вдавался в логику). Прилагаю сами тесты.
vector-benchmarks.zip