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...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Tagungsbericht |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
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 |