C / Perl Performance
C / Perl Performance
Bin gerade dabei mich in beides ein bischen tiefer einzuarbeiten. Ist die Performance der beiden vergleichbar oder hängt C das lahme Perl extrem ab? Spamassassin gibts ja auch in einer C-Variante aus Performance gründen. Ist der Unterschied wirklich so extrem. Klar - Perl ist im Endeffekt eine Interpretersprache. Gibts ne Art Benchmark dafür? Wie entscheide ich was ich in Perl mache, und wo ich besser C nehme?
thx
thx
--
kallisti!
kallisti!
außerdem ging es um C, nicht um C++ und das ist in Fall Geschwindigkeit ein großer Unterschied.bollin hat geschrieben:Ich habe schon mal ein Perl-Programm geschrieben, das schneller als sein C++-Equivalent war. Das lag an einer Ineffizienz in der Standardbibliothek. Es kommt also immer auf den Einzelfall an.
Viele Grüße,
Torsten
Ohne Beweise würde ich jetzt mal sagen, daß man in C schneller programmieren kann, aber es gibt sachen, für die Perl sicherlich sinnvoller ist als C.
Jazz is not dead, it just smells funny.
Hi!
Für einen groben Überblick kannst Du ja mal hier vorbeischauen. Solche Benchmarks sind allerdings mit Vorsicht zu geniessen
Gruß, <mawe>
Für einen groben Überblick kannst Du ja mal hier vorbeischauen. Solche Benchmarks sind allerdings mit Vorsicht zu geniessen
Mach's einfach so: Erstmal das ganze Ding in Perl. Wenn's dir zu langsam ist, such die Performance-fressenden Stellen und schreib sie in C um. Oder such ein Modul, das schon in C oder Fortran geschrieben ist. Für Number-Crunching bietet sich z.B. PDL anzorn hat geschrieben: Wie entscheide ich was ich in Perl mache, und wo ich besser C nehme?
Gruß, <mawe>
In den allermeisten Fällen wird es zwischen C und C++ keine Geschwindigkeitsunterschiede geben. Und mein Beispiel mit einer Ineffizienz der C++-Standardbibliothek war sicher eine Ausnahme, aber die gibt es eben auch manchmal. Theoretisieren hilft sowieso nicht, du musst dein Problem erst einmal in ein Programm gießen und danach kann man sich die Geschwindigkeit anschauen.se8i hat geschrieben: außerdem ging es um C, nicht um C++ und das ist in Fall Geschwindigkeit ein großer Unterschied.
Ohne Beweise würde ich jetzt mal sagen, daß man in C schneller programmieren kann, aber es gibt sachen, für die Perl sicherlich sinnvoller ist als C.
Viele Grüße,
Torsten
Für C++ gibt es http://www.boost.org/.zorn hat geschrieben:Bin immer noch auf der Suche nach einem CPAN Equivalent für C!
Viele Grüße,
Torsten
Re: C / Perl Performance
Jaja, Standard C++-Bibliothek sollten man auch nie nutzen -- extremst langsamt: printf vs cout.
Faktor 12, wenn wir mal von reinem algorithmischem Code ausgehen (Plus, Minus, usw.), also keine Standardbibliotheksfunktionen, oder Dinge, die oft in den Kernelspace wechseln. (SETI als Paradebeispiel)zorn hat geschrieben:Bin gerade dabei mich in beides ein bischen tiefer einzuarbeiten. Ist die Performance der beiden vergleichbar oder hängt C das lahme Perl extrem ab?
Re: C / Perl Performance
Den C++-Code möchte ich erst noch sehen, der langsamer ist als equivalenter C-Code.jengelh hat geschrieben:Jaja, Standard C++-Bibliothek sollten man auch nie nutzen -- extremst langsamt: printf vs cout.
Mitjengelh hat geschrieben: Faktor 12, wenn wir mal von reinem algorithmischem Code ausgehen (Plus, Minus, usw.), also keine Standardbibliotheksfunktionen, oder Dinge, die oft in den Kernelspace wechseln. (SETI als Paradebeispiel)
Code: Alles auswählen
use Inline;
Viele Grüße,
Torsten
Re: C / Perl Performance
http://linux01.org:2222/f/slowcout.tbz2 -- einfach mal make'n und staunen.bollin hat geschrieben:Den C++-Code möchte ich erst noch sehen, der langsamer ist als equivalenter C-Code.jengelh hat geschrieben:Jaja, Standard C++-Bibliothek sollten man auch nie nutzen -- extremst langsamst