优化ANTLR4 C ++运行时

时间:2018-12-12 05:53:29

标签: c++ antlr4

分析antlr4 C ++运行时之后, 我用老式的isType技术代替了使用动态转换检查最显着位置的类类型的“ is ”调用,该技术对每个类都使用了一些掩码,非常类似于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 clear,而后者又将昂贵的内存集调用为0。 我想知道这里是否没有其他更快的实现方法。

谢谢 阿兰

0 个答案:

没有答案