Email to Torsten Weber
Feed Icon
.NET User Group Leipzig

Heute musste ich tief im meinem Repository wühlen und bin dort beim Auschecken auf eine Anwendung gestoßen, die ich vor Jahren, 2001, geschrieben habe. Es handelt sich um eine Anwendung zur Analyse von Textdateien auf Häufigkeiten von Buchstaben, Anzahl von Sätzen und Wörtern. Diese Anwendung ist in C++ geschrieben und läuft eben auch auf heutigen Rechnern; Frameworks ;) werden keine benötigt. C++ war zur Entwicklungszeit eine Anforderung. Heutzutage erscheint der Anwendungscode, trotz einer erstklassigen Dokumenation, ein wenig Guru-mäßig. Zeiger, Zeiger, Zeiger für hohe Performance und geringen Speicherverbrauch.

Ein paar Fakten

  • 224.081.801 Bytes Text (218 MB) werden bei meinem aktuellen System in 2:18 Minuten verarbeitet
  • diesselbe Textdatei brauchte unter einem Pentium II 350 MHz 13:16 Minuten
  • beide Kerne meines Mehrkern-Prozessors werden in voll in Anspruch genommen
  • für 8.722.560 Buchstaben, um eben diese Anzahl zu ermitteln, benötigte unter dem Pentium II 350
    • Word 2000 16 Sekunden
    • Framemaker 5.5 dagegen 435 Sekunden, shame on Framemaker
    • TEXTSTAT 1.0 22 Sekunden
  • für 8.722.560 Buchstaben, um eben diese Anzahl zu ermitteln, benötigte mein aktuelles System
    • Word 2007 6 Sekunden
    • TEXTSTAT 1.0 3 Sekunden
  • die Datei mit den 8.722.560 Buchstaben ist als Textdatei 8.722.564 Bytes groß, aber als eine Datei im Word 2007-Format, docx, nur 97.930 Bytes
  • 8.722.560 Buchstaben nehmen bei Word 2007 bei Standardeinstellungen 2369 Seiten in Anspruch
  • TEXTSTAT 1.0 benötigt bei der Verarbeitung der 218 MB nur 896 KB an Hauptspeicher
  • Absatzgrößen, größer als 65.536 Zeichen, können Anwendungen für Textverarbeitung einiges an Problemen machen, z. B. Lotus Word Pro oder Corel Draw
  • "Das Feuer bzw. Wasser ist lebenswichtig." ist für uns Menschen ein Satz, für eine Anwendung zur Textanalyse sind es ohne Techniken, wie z. B. ein Wörterbuch für Abkürzungen, schon zwei.
  • Die Häufigkeit von Buchstaben im deutschen Alphabet mit Umlauten ergibt sich aus
    26 * 2 = 52 Buchstaben (+ 7 Umlaute).
  • Für einen Test habe ich einen Artikel von Masoud Kamali, www.derentwickler.de, Ausgabe 3.2001 (Mai/Juni), "Ich habe immer meine Borland-T-Shirts getragen", den ich damals nicht persönlich kannte, aber mittlerweile ein Freund ist, verwendet. Es ging in dem Bericht um Component Library CLX, es ging um Kylix, es ging um ein Interview von Masoud.
  • Textdateien sind nicht gleich Textdateien, es gibt unterschiedliche Zeichensätze, so z. B. MS-DOS Text oder Windows-Standard-Zeichensatz.
  • Eingaben von Benutzern waren auch damals schon "teuflisch" und mit Vorsicht zu interpretieren.
  • ... weiteres in der Dokumentation

TEXTSTAT 1.0 – Verarbeitung von großen Textdateien, Analyse von Häufigkeiten von Buchstaben, Anzahl von Sätzen / Wörtern

Die Anwendung, die Dokumentation und die Dateien für Testläufe gibt es hier.
Bei Lust und Laune werde ich den Anwendungscode mal mit einem aktuellem Compiler kompilieren.

God bless C++.

All comments require the approval of the site owner before being displayed.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, sup, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview

Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber
Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber

.NET User Group Leipzig

Categories

Calendar

<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

Archive

My subscribed blogs

show all
show less
Blogs of good friends (as OPML)
More Blogs (as OPML)