PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ vs. Perl - Massenbearbeitung von ASCII-Files



docfred
14-12-2005, 09:20
Hi,

geht um die Bearbeitung (selektiv an bestimmte Positionen in den Files springen und dort bsp. Chars austauschen) von 4 bis 5000 ASCII-Datein.

Was ist da in Bezug auf die Laufzeit eher zu empfehlen? Perl oder C++?

WhiTeY[GD]
14-12-2005, 12:54
Also ich wuerde dahingehend auf C++ zurückgreifen. Perl ist da zu umständlich und auch zu langsam. Für die C++ Runtime sind da auch mehr beispiele im umlauf daher auch ein besserer support wenn fragen aufkommen. Perl ist und bleibt fuer mich nur ein besseres PHP. is meine meinung.

peschmae
14-12-2005, 16:05
Ich denke rein auf die Laufzeit bezogen ist C++ da schon schneller. Die Frage ist nur ob das viel ausmacht - denn so ein Textbastelding ist mit Perl tendentiell schon schneller geschrieben.
Es sei denn du kannst gut C++ und gar kein Perl - aber dann hättest du die Frage wohl auch nicht gestellt ;-)

MfG Peschmä

michael.sprick
14-12-2005, 19:01
Perl und C sind imho gleichermaßen geeignet... es hängt ein wenig davon ab, wie Du das ganze aufrufen willst...
Wenn Du das Programm mit jeder zu bearbeitenden Datei einzeln aufrufen willst, z. B. aus einem bestehenden Shell skript heraus, dann ist ein fertig kompiliertes Binary etwas schneller.

Was die Ausführgeschwindigkeit betrifft, so wirst Du gerade bei solch grundlegenden Funktionen kaum einen Unterschied bemerken. Und das Perl da zu umständlich ist, wage ich mal zu bezweifeln...

Wenn Du z.B. in den Dateien in @Filenames jeweils das 5. Byte mit einem 'a' überschreiben willst, genügt schon folgendes:




#!/usr/bin/perl

use strict;
use warnings;
use Fcntl qw(O_RDWR);

my @Filenames = (
'datei1.txt',
'datei2.txt',
'datei3.txt'
);

my $ByteOffset = 5;
my $ReplacementChar = 'a';

foreach my $Filename (@Filenames)
{
sysopen(FH,$Filename,O_RDWR);
seek(FH,$ByteOffset,0);
print FH $ReplacementChar;
close(FH);
}

sticky bit
14-12-2005, 19:25
Was in PERL da umständlicher als in C sein soll? Kann man in PERL von der reinen Syntax und Logik her alles annähern genauso machen wie in C. Und reines C++ ist bei einfacher Aufgabenstellung ja eher noch umständlicher wenn man da erst mal mit den ganzen Objekten und so auffahren muss. Gut wenn mans gewöhnt ist, vielleicht nicht so tragisch.
Schneller dürfte trotzdem C/C++ sein, die Frage ist nur ob das nicht nur marginal ist. Alerdings, komplexe Stringoperationen sind in PERL halt schon implementiert und das nicht erst seit gestern, also wenn du es dir zutraust das genauso optimiert und fehlerfrei hinzubekommen, dann ist C/C++ mit Sicherheit das schnellere, wenn nicht, dann überholt der Interpreter ggf. noch die kompilierte Binary...

baumgartner
15-12-2005, 10:05
also leute, Perl ist eine Sprache zu Textverarbeitung.
Practical Extraction and Report Language

ich denke dass in der laufzeit nicht allzu große unterschied ist, die frage ist halt was du machen willst, auf jeden fall minimiert sich der programmieraufwand mit Perl wenn man es kann, da schon sämtliche tools vorhanden sind. bei mir werden täglich mehrere GIGABytes an logfiles geparst ohne dabei große systemressourcen zu verbrauchen.

btw: Perl schreibt man nicht PERL da es den namen schon vor der abkürzung gegeben hat :D

docfred
15-12-2005, 17:26
Ok danke für die Antworten :)

Hätte Perl jetzt aus dem Bauch heraus leichte Performancevorteile zugestanden aufgrund des Designs und der Eignung speziell für solche Angelegenheiten.

Scheint wohl auf einen Patt hinauszulaufen und es entscheidet nur die persönliche Neigung? ;)

SeeksTheMoon
16-01-2006, 08:42
']Also ich wuerde dahingehend auf C++ zurückgreifen. Perl ist da zu umständlich und auch zu langsam. Für die C++ Runtime sind da auch mehr beispiele im umlauf daher auch ein besserer support wenn fragen aufkommen. Perl ist und bleibt fuer mich nur ein besseres PHP. is meine meinung.

Von Dir hört man immer Perl sei zu umständlich. Ich liebe Perl nicht, aber ich würde echt mal gerne wissen was an der Sprache umständlich sein soll.

peschmae
16-01-2006, 09:50
Na immer ist wohl höchst relativ bei dir. Mit drei Beiträgen höchstens drei mal ;)

MfG Peschmä