Practical optimizations for automata

In a high performance finite automata implementation, a great deal of time is spent on cache misses. Additionally, when the transition labels are not simple letters, the implementation of a state's outtransitions is limited to ‘lists of transitions’ or ‘arrays of transitions’. In either case, s...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Watson, Bruce W.
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:In a high performance finite automata implementation, a great deal of time is spent on cache misses. Additionally, when the transition labels are not simple letters, the implementation of a state's outtransitions is limited to ‘lists of transitions’ or ‘arrays of transitions’. In either case, still more time is spent on finding the appropriate outtransition for a given input symbol. In this paper, we consider some ways to minimize these effects, using Ribbit's FIRE Engine II automata toolkit as the testbed. The optimizations considered include cache placement and transition list ordering. Some of the optimizations require information on the popularity of transitions within the automata (assuming ‘typical’ input strings). We also consider ways of obtaining the popularity information, such as: the structure of the regular expression from which the automaton was constructed and instrumenting the automaton to collect profiling information.
ISSN:0302-9743
1611-3349
DOI:10.1007/BFb0031396