Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  README   Sprache: Python

 
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.10 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 und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge