Удалось постигнуть некоторые рецепты оптимизации от уважаемого ivagor и всё заработало побыстрее. Конечно, вычесть быстрее, чем умножить.Собрал такие данные для 100, 1000 и 3000 цифр.
Commodore 64/PAL - 4.03 - 393.5 - 3527
Commodore 128/PAL - 2.2 - 208.6 - 1868
Commodore +4/PAL - 1.92 - 183.3 - 1641
Amstrad CPC6128 - 2.65 - 218.4 - 1934
Всё выложил на сайте - http://litwr2.atspace.eu/retropc.html
Версий для БК не правил - никто не тестирует. Версия для первых IBM PC совместимых вроде бы в руках уважаемого ivagor?
Попробовал версию treediv на Амстраде: 2.89 и 264.9 на 100 и 1000. Опять поражает разница по 100 и 1000. В первом случае Амстрад быстрее всего на 9%, а во втором на 21. По частоте Амстрад быстрее (если считать частоту Вектора 2.33) на 37% и ещё нужно надбавить процентов 5-10 за большую скорость LD и INC. Есть ещё неизученные рецепты.
Версия final_precise, если правильно понял, требует более 40 КБ непрерывной памяти - на Амстраде в бейсике такое без головной боли не сделаешь - надо в CP/M.
Заметил разницу в скорости, если печатать не с первой строки, т.е. со скроллингом. На Амстраде (нет текстового режима) до 3%, на Коммодоре - менее одного.
Непонятно. Выложил один из лучших кодов для z80 и нужно ещё что-то? Оптимизацию - это к уважаемуму ivagor-y. Версию treediv для z80, как понял, выкладывать не надо. Где же данные по Спектруму?
Нашел в сети awk-сценарий (http://www.hytherion.com/beattidp/comput/z80cpm.htm) - он всё и делает. Только там беда с плюсами. Поэтому их сначала нужно заменить, например, на @, а потом обратно. Ещё почему-то sbb не воспринимает.
На Амстраде JR быстрее JP. Но код очень впечатляет, собираюсь выложить его на профильной википедии. Эту версию DIV320 гораздо труднее приспособить для работы с любым BC. В прежней достаточно было поставить JR C, а теперь простого способа совсем не видно. Нужно указывать, что работает только если BC < $8000.
Ну это будет что-то почти невероятное.![]()




Собрал такие данные для 100, 1000 и 3000 цифр.
Ответить с цитированием
