Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Flex/examples/fastwc/   (Fast Lexical Analyzer Version 2.6©)  Datei vom 6.11.2012 mit Größe 1 kB image not shown  

Quelle  README   Sprache: C

 
This directory contains some examples illustrating techniques for extracting
high-performance from flex scanners.  Each program implements a simplified
version of the Unix "wc" tool: read text from stdin and print the number of
characters, words, and lines present in the text.  All programs were compiled
using gcc (version unavailable, sorry) with the -O flag, and run on a
SPARCstation 1+.  The input used was a PostScript file, mainly containing
figures, with the following "wc" counts:

 lines  words  characters
 214217 635954 2592172


The basic principles illustrated by these programs are:

 - match as much text with each rule as possible
 - adding rules does not slow you down!
 - avoid backing up

and the big caveat that comes with them is:

 - you buy performance with decreased maintainability; make
   sure you really need it before applying the above techniques.

See the "Performance Considerations" section of flexdoc for more
details regarding these principles.


The different versions of "wc":

 mywc.c
  a simple but fairly efficient C version

 wc1.l a naive flex "wc" implementation

 wc2.l somewhat faster; adds rules to match multiple tokens at once

 wc3.l faster still; adds more rules to match longer runs of tokens

 wc4.l fastest; still more rules added; hard to do much better
  using flex (or, I suspect, hand-coding)

 wc5.l identical to wc3.l except one rule has been slightly
  shortened, introducing backing-up

Timing results (all times in user CPU seconds):

 program   time   notes
 -------   ----   -----
 wc1       16.4   default flex table compression (= -Cem)
 wc1        6.7   -Cf compression option
 /bin/wc    5.8  Sun's standard "wc" tool
 mywc    4.6   simple but better C implementation!
 wc2    4.6   as good as C implementation; built using -Cf
 wc3    3.8   -Cf
 wc4    3.3   -Cf
 wc5    5.7   -Cf; ouch, backing up is expensive

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.