Anzeige:
Ergebnis 1 bis 9 von 9

Thema: C++ vs. Perl - Massenbearbeitung von ASCII-Files

  1. #1
    docfred
    Gast

    C++ vs. Perl - Massenbearbeitung von ASCII-Files

    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++?

  2. #2
    WhiTeY[GD]
    Gast
    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.

  3. #3
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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ä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    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:


    PHP-Code:
    #!/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);


  5. #5
    Registrierter Benutzer
    Registriert seit
    24.12.2001
    Ort
    anywhere before EOF
    Beiträge
    236
    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...
    chmod -R +t /*

  6. #6
    Registrierter Benutzer
    Registriert seit
    15.04.2005
    Beiträge
    105
    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

  7. #7
    docfred
    Gast
    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?

  8. #8
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    Zitat Zitat von WhiTeY[GD]
    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.
    I haven't lost my mind - It's somewhere on a backup-disc

  9. #9
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Na immer ist wohl höchst relativ bei dir. Mit drei Beiträgen höchstens drei mal

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •