Die schnellste Programmiersprache

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Die schnellste Programmiersprache

      Seit geraumer Zeit versuche ich schon herauszubekommen, welche Programmiersprache nun wirklich die allerschnellste ist. Natürlich Assembler oder C denkt man erstmal. Doch man hört so allerlei, wie C wäre durch Optimierungen des Compilers sogar schneller als Assembler.

      Auch googeln wirft in diesem Fall mehr Fragen auf als es beantwortet. Eigentlich favorisiere ich diese Seite, die macht mir einen vernünftigen Eindruck:

      raid6.com.au/~onlyjob/posts/arena/

      Dort kommt man zum Ergebnis:

      1. Perl
      2. C
      3. Javascript 8


      Und es wird unten ein Testprogamm in C usw. geliefert, das man auch in XProfan, PureBasic, FreeBasic etc konvertieren könnte um sie der Grafik einzufügen. Also das würde mich mal wirklich mal interessieren, welche Sprache wirklich die schnellste ist. Das wäre vielleicht auch eine Aufgabe für Paules-Pc-Forum als Community. Ein geeignetes Benchmarking-Testprogramm und das dann in alle nur denkbaren Sprachen zu konvertieren und "Paules Programmiersprachenübersicht" zu erstellen. Fänd ich gut.
    • Perl und Javascript 8 können kaum die schnellsten (wobei die Frage ist, was ist damit gemeint?) Programmiersprachen sein, da nicht nativ. Es kommt natürlich darauf an, was, wie und wofür der Code ist und ob er Optimiert (Händisch oder durch Compiler) ist.

      So ein Test ist auch nicht Aussagefähig, da es natürlich drauf ankommt, welchem Zweck der Code dient und somit z.B. viele Schleifen, Iterationen oder Anzeigen benötigt.

      Ich fänd es Überflüssig. Die optimale Programmiersprache, ist die, die den Zweck des Programmes erfüllen kann, dem Programmierer Arbeit abnimmt und die der Programmierer beherrscht.

      Der Code kann optimiert sein, für Zuverlässigkeit, Hardware (Cores, Takt, Prozessorfeatures usw.), Größe, Kompatibilität, Geschwindigkeit usw., aber niemals für alles (
      eierlegende Wollmilchsau :-D ).
      Gruß Thomas
      „Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine
      davon in einer Katastrophe endet oder sonstwie unerwünschte
      Konsequenzen nach sich zieht, dann wird es jemand genau so machen.“ Murphys Gesetz
      ComputerInfo für PPF
    • Wobei hier zu bedenken ist, dass nicht nur die Programmiersprache zählt. Zu den meisten Programmiersprachen gibt es Kompiler von verschiedensten Herstellern. Das kann schon einen großen Unterschied ausmachen. Zum Beispiel sind die Kompiler vom Embacadero (ehemals Borland) für extrem kompakten und schnellen Code bekannt, währen auf der anderen Seite die Freeware-Compiler zu C++ und Object-Pascal (Delphi) deutlich (!) langsamer sind und doppel so große Programme erzeugen.

      Mein XProfan ist mit FreePascal kompiliert etwa halb so schnell wie die mit Delphi 2006 kompilierte Variante und hat mit FreePascal (trotz Optimierung) eine doppelt so große Runtime.

      Am schnellsten wird wohl handoptimierter Assemblercode sein.

      Gruß
      Roland
      (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
      AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


      http://www.xprofan.de
    • Ich glaube aber, das Assembler zu ziemlich alles ausführen kann und am nächsten am System ist. Schliesslich wird doch alles in Assembler kompiliert, oder ist das heute nicht mehr der Fall?
      Ich meine nicht die Mnemonics, die ein Disassembler anzeigt. (Wobei diese für den Editoren relevant sind...)
      Free soul!
      Wenn Meinungen kritisiert werden, ist es dann nicht wahr, das man unfrei ist?
      codedeaf.net
      facebook.com/codedeaf
    • ts-soft schrieb:

      Perl und Javascript 8 können kaum die schnellsten (wobei die Frage ist, was ist damit gemeint?) Programmiersprachen sein, da nicht nativ. Es kommt natürlich darauf an, was, wie und wofür der Code ist und ob er Optimiert (Händisch oder durch Compiler) ist.

      So ein Test ist auch nicht Aussagefähig, da es natürlich drauf ankommt, welchem Zweck der Code dient und somit z.B. viele Schleifen, Iterationen oder Anzeigen benötigt.

      Ich fänd es Überflüssig. Die optimale Programmiersprache, ist die, die den Zweck des Programmes erfüllen kann, dem Programmierer Arbeit abnimmt und die der Programmierer beherrscht.

      Der Code kann optimiert sein, für Zuverlässigkeit, Hardware (Cores, Takt, Prozessorfeatures usw.), Größe, Kompatibilität, Geschwindigkeit usw., aber niemals für alles (
      eierlegende Wollmilchsau :-D ).
      Das hat mich eigentlich auch ein bißchen gewundert, dass Perl so schnell sein soll. Wobei der Autor aber Ahnung zu haben scheint. Das ist es eben, so einen Vergleich zu machen erfordert viel Ahnung und die ist bei mir zwangsläufig begrenzt. Ich würde mir das so vorstellen am besten selber den Test zu machen, denn man soll ja keiner Statistik trauen... :lol:

      Das Testprogramm könnte man so aufbauen, dass es einige tausend Strings aus einem Array im Textmodus und Rechtecke, Kreise in verschiedenen Modi im Grafikmodus, ein paar Dateien lädt und vielleicht ein Menüsystem darstellt mit einigen Fenstern und seine eigene Gesamtzeit dabei misst. Eine repräsentative Auswahl eben. Dann werden die Daten wie auf der obigen Seite in ein Koordinatensystem eingetragen.

      RGH schrieb:

      Wobei hier zu bedenken ist, dass nicht nur die Programmiersprache zählt. Zu den meisten Programmiersprachen gibt es Kompiler von verschiedensten Herstellern. Das kann schon einen großen Unterschied ausmachen. Zum Beispiel sind die Kompiler vom Embacadero (ehemals Borland) für extrem kompakten und schnellen Code bekannt, währen auf der anderen Seite die Freeware-Compiler zu C++ und Object-Pascal (Delphi) deutlich (!) langsamer sind und doppel so große Programme erzeugen.
      Das kann man durchaus berücksichtigen, Hersteller und Version, wie es in der Grafik bei Javascript 8 gemacht wurde. Man kann ja auch auf einem entsprechend großen Diagramm entsprechend viele Kurven zeigen. In Listenform ist es sowieso unbegrenzt. Hauptsache kommt zu einem Ergebnis, dass man definitiv sagen kann welche Sprache von welchem Hersteller in welcher Version derzeit die schnellste ist. Fänd ich interessant und auch nützlich. Die Programmgröße könnte ein zusätzliches Kriterium bilden.


      Deacon schrieb:

      Ich glaube aber, das Assembler zu ziemlich alles ausführen kann und am nächsten am System ist. Schliesslich wird doch alles in Assembler kompiliert, oder ist das heute nicht mehr der Fall?
      Ich meine nicht die Mnemonics, die ein Disassembler anzeigt. (Wobei diese für den Editoren relevant sind...)
      Eigentlich wird alles in Maschinensprache übersetzt, also binäre Nullen und Einsen. Einige Sprachen wie Java benutzen aber einen portablen Bytecode, der dann auf jeder Plattform ein Übersetzungsmodul braucht, soviel ich weiß. Doch diese Sprachen dürften sowieso nicht die schnellsten sein, da der Übersetzungsvorgang auch Zeit erfordert. Und Java liegt ziemlich am Ende des Feldes.
    • Die schnellste Programmiersprache gibt es nicht! Es gibt lediglich, das zu einem Problem optimale Programmierwerkzeug.

      Ein Benchmarkprogramm zeigt nur die Qualität des Benchmarks, aber nicht die Geschwindigkeit noch die Effiziens des damit programmierten Programms. Jede Version des Benchmarks muß für die Programmiersprache und das Problem optimiert werden.

      Ein grosses C++ Projekt erzeugt wahrschenlich schnelleren Code, als das C Pedant. Umgekehrt wird es bei kleineren Projekten sein.

      Ein grosses Programm ist wahrscheinlich schneller als ein kleines, da z.B. die meisten Schritte bereits aufgeschlüsselt sind und nicht in Schleifen ablaufen müssen.

      Ein kleines schnelles Programm wird wahrscheinlich an Assembler programmiert, ein etwas grösseres in C und ein noch grösseres in C++, dies sagt aber nichts über andere Aspekte der Software aus, die viel wichtiger sind:

      Stabiblität, Portabilität, Erweiterbarkeit/Wartbarkeit usw.


      Sich also an der "Geschwindigkeit" des Codes zu orientieren zeugt nur von Naivität aber nicht von Professionalität.
      Gruß Thomas
      „Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine
      davon in einer Katastrophe endet oder sonstwie unerwünschte
      Konsequenzen nach sich zieht, dann wird es jemand genau so machen.“ Murphys Gesetz
      ComputerInfo für PPF
    • Wenn man ein kleines Programm mit einfacher Oberfläche programmiert, das nicht viel rechnen muss, ist ziemlich egal, wie schnell das läuft. Die schreibe ich meistens in XProfan, weil ich da am schnellsten was entwickeln und testen kann. Apps für Android schreibe ich in Java. Aufwendigeren Code schreibe ich mit PureBasic. Dafür brauche ich keine Benchmaks - die sind auch gar nicht aussagekräftig.
      Will ich zum Beispiel Speicherbereiche durchsuchen, geht das manchmal bei bestimmten Sachen einfacher
      und schneller in XProfan, als mit PureBasic, obwohl mir eine Benchmark ganz was anderes sagen würde.

      Was nutzt es mir, fünf Jahre länger an Code zu werkeln, wenn er am Ende 10ms schneller läuft? Welche Sprache ich nutze, hängt erst mal davon ab, was ich damit tun will und wofür die am besten geeignet ist.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Marc Bonus schrieb:

      Stimmt, wenn dein Programm so langsam läuft dass du ständig Kaffee kochen gehen kannst, das ist professionell.
      Stimmt, wenn das Programm meine Kaffeemaschine steuert. Aber ansonsten zeugt Deine Aussage eher von Ahnungslosigkeit.
      Gruß Thomas
      „Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine
      davon in einer Katastrophe endet oder sonstwie unerwünschte
      Konsequenzen nach sich zieht, dann wird es jemand genau so machen.“ Murphys Gesetz
      ComputerInfo für PPF
    • Ob das Programm eine Arbeit in einer Sekunde oder in 10 Sekunden erledigt hat, ist mir erst mal egal. Wichtiger ist mir da, wo ich den Code überhaupt bzw. besser entwickeln kann. Bei kleineren Programmen ist das eine andere Sprache, als bei umfangreicherem Code; bei Android eine andere Sprache, als bei Windows.
      So ein Test sagt gar nichts, da unterschiedliche Sachen in unterschiedlichen Sprachen unterschiedlich gelöst und umgesetzt sind. Manche Sachen kann ich mit manchen Sprachen gar nicht tun, manches ist extrem umständlich in einer Sprache - in einer anderen ganz einfach zu lösen.
      Was nützt es mir, wenn ich weiß, welche Sprache bei der Stringberechnung am schnellsten ist - ich aber damit gar keinen vernünftigen Code zustande bekomme?

      Marc Bonus schrieb:

      Was aber wenn du fünf Jahre an Code werkelst und dann feststellst,
      Ich werkele generell maximal einige Tage an Code, dann läuft der mit der Sprache, die ich dafür gewählt habe. In manchen Sprachen, die schneller sind, müsste ich Jahre werkeln, bis der läuft.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • AHT schrieb:

      Was nützt es mir, wenn ich weiß, welche Sprache bei der Stringberechnung am schnellsten ist - ich aber damit gar keinen vernünftigen Code zustande bekomme?
      Wir sind uns doch schon weitgehend einig, was wesentlich Anderes als ihr sage ja eigentlich auch nicht. Bei kleinen dialogorientierten Programmen ist es fast schon egal wie schnell sie sind. Den Unterschied sieht man mit dem bloßen Auge kaum.

      Wichtig wird die Geschwindigkeit bei umfangreichen Grafikoperationen. Bei hunderten oder tausenden Grafikoperationen addieren sich die einzelnen Zeiten und da merkst du einen deutlichen Unterschied von C und anderen Sprachen aus dem hinteren Feld.

      Oder bei umfangreichen Berechnungen, die öfters vorkommen. Und dann ist es einfach schöner, wenn es schnell geht.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Marc Bonus ()

    • Marc Bonus schrieb:

      Wichtig wird die Geschwindigkeit bei umfangreichen Grafikoperationen.
      Da ist das Framework entscheidend, sowie die multitreading Funktionalität der Programmiersprache, die Geschwindigkeit spielt nur eine Nebenrolle. Da fallen die meisten Sprachen in dem oberen Link schon mal raus ;-) .

      Der dort gemachte Benchmark ist in diesem Fall, wie in den meisten anderen, nur für die Katz :-D
      Gruß Thomas
      „Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine
      davon in einer Katastrophe endet oder sonstwie unerwünschte
      Konsequenzen nach sich zieht, dann wird es jemand genau so machen.“ Murphys Gesetz
      ComputerInfo für PPF
    • ts-soft schrieb:

      Marc Bonus schrieb:

      Wichtig wird die Geschwindigkeit bei umfangreichen Grafikoperationen.
      Da ist das Framework entscheidend, sowie die multitreading Funktionalität der Programmiersprache, die Geschwindigkeit spielt nur eine Nebenrolle. Da fallen die meisten Sprachen in dem oberen Link schon mal raus ;-) .
      Der dort gemachte Benchmark ist in diesem Fall, wie in den meisten anderen, nur für die Katz :-D
      Du meinst wohl Multithreading. Das ändert aber nichts daran, dass die gleiche Grafikroutine in verschiedenen Sprachen sehr unterschiedlich schnell abläuft.
    • Geht es dir jetzt um Grafikbenchmarks oder um Programmsprachen?
      Dann möchte ich sagen, das Assembler (ohne Dissambler auch gerne "Maschinensprache" genannt) eindeutig die schnellste ist, da sie im Prinzip den direkten Binärcode an die CPU liefert.
      Bei Grafik entscheidet sicherlich mehr als nur die Codezeilen.
      Bei einer Festplattte von "der schnellsten" zu sprechen, macht es ja auch abhängig vom Anschluss und vom Gebrauch, z.B. sind 100 MB in 100.000 Dateien langsamer kopiert als 100 GB in 10 Dateien.
      Free soul!
      Wenn Meinungen kritisiert werden, ist es dann nicht wahr, das man unfrei ist?
      codedeaf.net
      facebook.com/codedeaf
    • Deacon schrieb:

      Geht es dir jetzt um Grafikbenchmarks oder um Programmsprachen?
      Dann möchte ich sagen, das Assembler (ohne Dissambler auch gerne "Maschinensprache" genannt) eindeutig die schnellste ist, da sie im Prinzip den direkten Binärcode an die CPU liefert.
      Bei Grafik entscheidet sicherlich mehr als nur die Codezeilen.
      Bei einer Festplattte von "der schnellsten" zu sprechen, macht es ja auch abhängig vom Anschluss und vom Gebrauch, z.B. sind 100 MB in 100.000 Dateien langsamer kopiert als 100 GB in 10 Dateien.
      Es geht mir darum die schnellste Programmiersprache zu ermitteln. Und das geht definitiv. Wenn es auch schwierig ist. Natürlich spielt in der Praxis die Lesbarkeit und Bequemlichkeit des Programmierers die Hauptrolle. Doch man kann Programmierung aus zwei Perspektiven sehen:

      1. Aus Programmierersicht

      2. Aus Maschinensicht

      Und was dem Programmierer am schönsten erscheint ist meist nicht das gleiche als das was aus Maschinensicht am effektivsten ist.

      C soll manchmal sogar schneller sein als Assembler, da der Compiler bereits optimiert.
    • Marc Bonus schrieb:

      Das ändert aber nichts daran, dass die gleiche Grafikroutine in verschiedenen Sprachen sehr unterschiedlich schnell abläuft.

      Nicht nur die Grafikroutinen. Es bringt aber nichts, da irgendwas zu messen, denn für das Programm, das zu erstellen ist, sind solche Zahlen gar nicht relevant. Die sind auch für unterschiedliche Routinen in unterschiedlichen Sprachen unterschiedlich. In ASM müsstest du viele Sachen selbst schreiben und bist bei einem kompletten Programm nachher eventuell mit deinem Code langsamer, als mit anderen Sprachen, die in gleicher Sache optimierten Code verwenden.
      Bei den vier Sprachen, mit denen ich hauptsächlich Code schreibe, schaue ich eigentlich erst mal danach, was mit den Sprachen am besten geht. Die haben alle unterschiedliche Schwerpunkte und sind in unterschiedlichen Sachen gut.
      Mit "gut" meine ich dabei aber nicht die Geschwindigkeit. Da sind andere Sachen viel wichtiger.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Marc Bonus schrieb:

      Es geht mir darum die schnellste Programmiersprache zu ermitteln.
      Das geht nur bezogen auf ein einziges Projekt.

      Ansonsten würde ich ein LLVM-Backend empfehlen, was mit größter Wahrscheinlichkeit zum schnellsten Code optimiert. Das gibt es zur Zeit für:
      C, C++, Objective-C, Swift, Java, Julia, D, Ada, Fortran, Haskell, Dylan, Gambas, Python, Ruby, Rust, ActionScript und GLSL. Such Dir was aus :-D

      LLVM - Wikepedia
      Gruß Thomas
      „Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine
      davon in einer Katastrophe endet oder sonstwie unerwünschte
      Konsequenzen nach sich zieht, dann wird es jemand genau so machen.“ Murphys Gesetz
      ComputerInfo für PPF
    • Marc Bonus schrieb:

      C soll manchmal sogar schneller sein als Assembler, da der Compiler bereits optimiert.
      Keine Ahnung, ob ich das als Widerspruch in sich selbst sehen muss, aber das ist es.
      Generell wird jede Hochsprache in Assembler, bzw. Binärcode umgewandelt. Ein Programm, das ich eintippe, egal in welcher Sprache, funktioniert generell nicht als solches, sondern wird immer kompiliert.
      Wenn ich lese, der Compiler optimiert einen Programmcode, sodass dieser schneller ist als er selbst, denke ich gleich an ein Paradoxon. Wenn ich optimierten Assemblercode vorliegen habe, ist es immer noch Assembler. Zu den Zeiten, in denen Bytes knapp waren und Bits zum Teil herhalten musste, wurde schon sehr genau optimieren gelernt, das heisst der Programmierer wird ja in der Regel keine unnützen Extrazeilen schreiben, nur damit der Code mehrere Megabytes hat. Bestes Beispiel könnte sein: kkrieger.
      Free soul!
      Wenn Meinungen kritisiert werden, ist es dann nicht wahr, das man unfrei ist?
      codedeaf.net
      facebook.com/codedeaf