В прошлом посте https://vombat.su/post/73536-novosti-o-moem-proekte-vm5277-razrabotka-po-dlya-8bit-mk я показал реализацию нативного метода для подсчета CRC8.

А вот пример бенчмарка на основе подсчёта CRC8

Пример теста производительности основанный на подсчете CRC8 на языке J8B
Пример теста производительности основанный на подсчете CRC8 на языке J8B

А вот результат работы:

Результат работы теста производительности
Результат работы теста производительности

Здесь мы видим, что было выполнено тысяча итераций подсчета CRC8 (SMBUS) для последовательности в 64 байта (байтовый массив). Общее время выполнения на ATmega328p на частоте 16МГц - 0.227 секунды, и 0.000227 секунды на одну итерацию.

Этот результат близок к максимально возможной скорости вычисления для ATmega328p на 16МГц для не табличных вычислений и сравним с ассемблерным аналогом. По сути, так и есть - потому что выполняется именно ассемблерный аналог. Однако для прикладного разработчика ничего не изменилось - его код как и ранее высокоуровневый, ему не нужно знать ничего об ассемблере или Си.

И да, ассемблерная функция вычисления CRC8 встроена в RTOS. На первый взгляд, это минус, ведь для каждой новой платформы нужно повторять набор всех ассемблерных функций. Но мой тулкит гибкий - можно реализовать вычисление CRC8 на J8B, а нативную реализацию из RTOS использовать там где она реализована. Таким образом к первым версиям RTOS других платформ не требуется реализация всего и вся - это просто доработка для повышения производительности.

Важно! Проект в состоянии альфа версии и я несколько месяцев не обновлял его на GitHub'е.

То, что вы там найдете - не будет соответствовать этому посту.

Прошу подождать, я планирую в течении недели выложить все свои доработки.

Ссылки:

Сайт-визитка: https://vm5277.ru

P.S. Ждите обновления проекта.