Мне нужен совет по моему первому D-проекту. Я загрузил его на: -Сравнение соответствия шаблону: поиск Compiletime vs Runtime в D
https://bitbucket.org/mrjohns/matcher/downloads
IDEA: Бенчмаркинг 3 алгоритмов выполнения и сравнивая их с их вариантами компиляции. Единственное различие между ними заключается в том, что для компиляции time-ones таблицы вычислений (т. Е. Массивы bmBc, bmGs и суффиксы) должны вычисляться во время компиляции (в настоящее время я полагаюсь на CTFE). В то время как для исполняемых файлов таблицы поиска вычисляются во время выполнения.
NB: сами алгоритмы сопоставления шаблонов не должны выполняться во время компиляции, а только таблицы поиска. Указав это, алгоритмы, которые выполняются на известных (вычисляемых по времени) таблицах, должны быть быстрее, чем те, которые должны вычислить их во время выполнения.
Мои результаты, похоже, показывают что-то другое, только первая пара ( BM_Runtime и BM_Compile-time) дает допустимые результаты, две другие пары дают более высокое время выполнения для вариантов времени компиляции. Я думаю, что здесь что-то не хватает. Пожалуйста помоги.
Текущие результаты для шаблона = "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 inputs.d rtime_pre.d ctime_pre.d & & numactl --physcpubind = 0 ./matcher
Буду признателен за ваши предложения.
Спасибо вам за это.
Любой тест производительности без активации оптимизации компилятора не является полезным. – sibnick
@sibnick, спасибо. Но я никогда не делал этого раньше. Как это можно сделать? – Walker
Обратите внимание, что DMD не создает очень эффективный код даже при оптимизации. LDC и GDC используют llvm и GCC-серверы соответственно, которые имеют гораздо больше работы в своих оптимизаторах. –