Оптимизация времени выполнения ANTLR4 C ++

После профилирования среды выполнения antlr4 C ++
Я заменил «есть» < При вызове ClassName> «, использующем динамическое приведение, для проверки типа класса в наиболее заметных местах по методике isType старой школы, в которой используется битовая маскировка для каждого класса, очень похоже на технику типа C, я получил около 20% по сравнению с регрессией во время выполнения.

Следующий правонарушитель в очереди:

ParserATNSimulator.cpp

auto onExit = finally([this, input, index, m] {
mergeCache.clear(); // wack cache after each prediction

Вызов:

void PredictionContextMergeCache::clear() { _data.clear(); }

который вызывает очистку unordered_map, которая, в свою очередь, вызывает дорогой memset к 0.
Интересно, нет ли здесь более быстрой реализации?

Спасибо
Alain

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector