Сравнение шаблонов: поиск по времени компиляции и поиск по времени выполнения в D

Мне нужен совет по моему первому D-проекту. Я загрузил его по адресу: -

https://bitbucket.org/mrjohns/matcher/downloads

IDEA: Сравнительный анализ 3 алгоритмов времени выполнения и сравнение их с вариантами времени компиляции. Единственное различие между ними заключается в том, что для времени компиляции таблицы поиска (т. Е. Массивы bmBc, bmGs и суффиксы) должны быть вычислены во время компиляции (в настоящее время я полагаюсь на CTFE) . В то время как для времени выполнения таблицы поиска вычисляются во время выполнения.

NB: Сами алгоритмы сопоставления с образцом не должны выполняться во время компиляции, только таблицы поиска. Об этом говорится, что алгоритмы, которые работают на известных (вычисляемых во время компиляции) таблицах, должны быть быстрее, чем те, которые должны вычислять их во время выполнения,

Мои результаты, кажется, показывают что-то другое, только первая пара ( BM_Runtime и BM_Compile-time) дает допустимые результаты, две другие пары дают более высокое время выполнения для вариантов компиляции. Я думаю, что-то здесь не хватает. Пожалуйста помоги.

Текущие результаты для pattern="GCAGAGAG" следующие:

**BM_Runtime**          = 366 hnsecs     position=   513

**BM_Compile-time**     = 294 hnsecs     position   =513

**BMH_Runtime**         = 174 hnsecs     position=   513

**BMH_Compile-time**    = 261 hnsecs     position=   513

**AG_Run-time**         = 258 hnsecs    position=   513

**AG_Compile-time**     = 268 hnsecs    position=   513

Выполнение кода: dmd -J. matcher.d input.d rtime_pre.d ctime_pre.d && numactl --physcpubind=0 ./matcher

Буду признателен за ваши предложения.

Благодарю вас в аванс.

1 ответ

Любой тест производительности без активации оптимизации компилятора бесполезен. Вы должны добавить dmd -release -inline -O -boundscheck=off, Также обычно тесты производительности используют циклы для повторения вычислений. В противном случае вы можете получить неправильные результаты.

Другие вопросы по тегам