Welche Programmiersprache für das internet
-
Ich habe jetzt übrigens mal etwas anderes bei den Zufallszahlen gemacht. Bei mir steht da jetzt :
array[i]=(rand() << 16)+rand();
Das Ergebnis ist eine Datei, die etwa 3,5 MB zu groß ist, ich weiß aber nicht, warum.
Die Ergebnisse sehen etwa wie folgt aus :
1,2 GHz
Sortieren : 1,5s
String : 4s
Speichern : 12s
Wurzel : 0,2s1,6 GHz
Sortieren : 1,1s
String : 3s
Speichern : 8s
Wurzel : 0,15s
-
also was braucht man für ein C++ Programm welches Java weit hinter sich läst,
- Variablen auf den Stack
- wenig Hot Spots (also bitte nicht 10000000 mal das gleiche hinter einander)
- ein paar Klassen im Container (Java muss da immer dynamisch casten so weit ich weiß)
- ein test der die komplette Zeit berücksichtigt (obwohl mir das egal ist wenn ein Java Programm 3 mal so lange brauchen würde um zu Starten)
- eine gute STL Implementierung
bitte ergänzt weiter
-
@Gregor kein wunder das da unterschiedliche Größen rauskommen, rand in Java gibt andern zahlen aus (mehr Ziffern wie es scheint)
-
- Ein Programm, bei dem man primitive Datentypen in Containern speichern muss. Java ist da normalerweise auf die Wrapperklassen angewiesen, da muss also gecastet werden, dazu kommt ein deutlich erhöhter Speicherplatzbedarf,...
BTW : Ich glaube, das mit den Hotspots bringt nicht so viel.
-
Original erstellt von Dimah:
**also was braucht man für ein C++ Programm welches Java weit hinter sich läst,
**BTW : Bei der Fragestellung sage ich dir jetzt schon einen nicht objektiven Test voraus, falls du anhand der Antworten einen machen willst!
-
Original erstellt von Gregor:
BTW : Ich glaube, das mit den Hotspots bringt nicht so viel.ist Problematisch, wie kann ich die Hot Spots rausmachen und dann noch im Ms messen :(,
Kanns du vielleicht Hot Spot aus machen und dan noch mal testen bitteOriginal erstellt von Gregor:
BTW : Bei der Fragestellung sage ich dir jetzt schon einen nicht objektiven Test voraus, falls du anhand der Antworten einen machen willst![ Dieser Beitrag wurde am 26.10.2002 um 01:22 Uhr von Dimah editiert. ]
-
Ich wüßte nicht, wie das geht, aber ich habe mal folgendes gemacht :
java -Xprof -Xmx192m Benchmark2 > Ergebnis.txt
(Das ist die handgeschriebene Version)
Ergebnis (bei 1,2 GHz):
Array erzeugen : 200ms Zufallszahlen erzeugen : 4657ms Sortieren : 2664ms String (anhängen) : 2814ms Speichern : 4466ms Wurzeln berechnen : 170ms Flat profile of 15.25 secs (1518 total ticks): main Interpreted + native Method 28.9% 0 + 439 java.io.FileOutputStream.writeBytes 1.3% 1 + 18 Benchmark2.main 0.5% 0 + 8 java.io.FileInputStream.open 0.5% 0 + 7 java.io.FileOutputStream.open 0.3% 0 + 5 java.util.zip.ZipFile.open 0.2% 0 + 3 java.io.WinNTFileSystem.getBooleanAttributes 0.1% 0 + 1 java.lang.String.indexOf 0.1% 0 + 1 Benchmark2.addIntegerToString 0.1% 0 + 1 java.io.WinNTFileSystem.canonicalize 0.1% 0 + 1 java.util.zip.ZipFile.getEntry 0.1% 0 + 1 Benchmark2.quickSort 0.1% 0 + 1 sun.nio.cs.StreamEncoder$CharsetSE.writeBytes 32.1% 1 + 486 Total interpreted Compiled + native Method 26.2% 397 + 0 java.util.Random.next 16.2% 246 + 0 Benchmark2.addIntegerToString 15.1% 229 + 0 Benchmark2.quickSort 6.8% 84 + 19 Benchmark2.main 2.4% 36 + 0 Benchmark2.insertionSort 66.6% 992 + 19 Total compiled Runtime stub + native Method 0.1% 2 + 0 interpreter_entries Runtime1 stub 0.1% 2 + 0 Total runtime stubs Thread-local ticks: 0.4% 6 Class loader 0.6% 9 Interpreter 0.2% 3 Compilation Flat profile of 0.00 secs (1 total ticks): DestroyJavaVM Thread-local ticks: 100.0% 1 Blocked (of total) Global summary of 15.28 seconds: 100.0% 1527 Received ticks 0.3% 5 Received GC ticks 0.9% 13 Compilation 0.4% 6 Class loader 0.6% 9 Interpreter
-
Original erstellt von Bashar:
**Und was sagt einem das Ergebnis? Das so ein Test nichtmal annähernd auf Real-World Situationen übertragbar ist war ja schließlich hoffentlich vorher allen beteiligten klar.[Edit: der Fhelerteufel hat ein Wort geklaut]
[PS: Nebenbei gesagt ist das ein ziemlich armer Test. Wer Programmiersprachen mittels Fortran-Programmen vergleicht muß sich nicht wundern, wenn Sprachen, die sich am Geist von Fortran orientieren, am besten abschneiden]
**Ich halte es eh nicht für Sinnvoll, die Sprachen so zu vergleichen. Mir fallen aber keine vernünftigen Tests ein, die die beiden Sprachen in wirklichen Situationen vergleichen könnten. Mir ging es eigentlich um ein C# vs. Java Test (im ursprünglichen Thread) und das C++ Programm als Referenz.
Vielleicht sollten wir eine Server Applikation schreiben und damit Testen, so wie das in Programmieren von UNIX Netzwerken gemacht wird. Aber da hat man bei C++ das Problem, dass man eher die OS API testet, als C++ an und für sich
-
@ King : Stimmt! Wir sind da vom ursprünglichen Thema abgekommen. Wir hätten die C++-Referenz vielleicht weglassen sollen. Für den C# vs. Java Vergleich hat das C++-Programm nicht so viel gebracht. Ich hatte eigentlich gehofft, dass man anhand dieses Programms sehen kann, um welchen Faktor in etwa C# und Java programme generell langsamer sind als C++-Programme. Aber es sind wohl immernoch nicht alle Möglichleiten ausgereizt worden.
BTW : Hat denn jemand Linux mit Mono und einer JVM 1.4 bei sich installiert?
-
@Gregor
wir sollten ein Rechner aussuchen, auf dem Windows und Linux (am besten frisch) installiert sind und dann folgendes testenWindows:
-dotNET:
MS dotNET Implementation
Mono-Java:
JVM 1.4.1 (1.4.1 ist doch das neueste oder irre ich da?)
(MS hat doch auch ne eigene Java VM Implementierung (oder?), die sollten wir nach Möglichkeit auch testen)Linux:
-dotNET:
dotGNU
Mono
Rotor Portierung-Java
JVM 1.4.1 (1.4.1 ist doch das neueste oder irre ich da?)
Kaffee(vielleicht sollten wir für den Java Test nebenbei auch mal den GNU Java Compiler testen, natürlich nicht als Konkurenz zu C#)
-
Vielleicht sollte man das Refernz-Programm erst in C+++ verfassen und dann in den restlichen Sprache. Ich verspreche euch, da werdet ihr es viel leichter haben!
-
@ King : Glaubst du, es gibt jemanden in diesem Forum, der so einen Rechner hat?
-
JVM 1.4.1 (1.4.1 ist doch das neueste oder irre ich da?)
(MS hat doch auch ne eigene Java VM Implementierung (oder?), die sollten wir nach Möglichkeit auch testen)1.4.1 ist die neueste JVM. Die Implementierung von MS ist
- ...nicht standardkonform
- ...bei Java 1.1.? stehengeblieben
- ...so ziemlich das langsamste, was es gibt
- ...eigentlich gegen Java gerichtet
-
@Gregor
kann ja sein, dass jemand sein System gerade komplett neu einrichten will *hoff* hab leider kein neueres System hier, das ich mal eben formatieren und neu aufsetzen kann/will.Von der MS Java Implementierung habe ich nur in der aktuellen iX gelesen, weil die dort über ein paar Sicherheitslücken in der Implementierung berichtet haben
BTW.
hast du Informationen zu Kaffee?[ Dieser Beitrag wurde am 26.10.2002 um 13:52 Uhr von kingruedi editiert. ]
-
Von der MS Java Implementierung habe ich nur in der aktuellen iX gelesen, weil die dort über ein paar Sicherheitslücken in der Implementierung berichtet haben
Ich möchte darauf hinweisen, dass Sicherheitslücken ein MS Problem sind und kein Java Problem!
hast du Informationen zu Kaffee?
Nein! Von Kaffee habe ich von dir das erste mal gehört.
-
Nein! Von Kaffee habe ich von dir das erste mal gehört.
-
Kaffee war oder ist wohl ne freie Implementierung der JavaVM, finde aber leider keine Informationen mehr dazu
gibt aber wohl noch andere freie Java Implementierungen
-
Original erstellt von <########>:
Wenn ich den Kaffee gemeint hätte, den du wahrscheinlich meinst, dann hätte ich sagen müssen :
"Nein! Von Kaffee wird mir immer schlecht und ich finde Kaffee zum Kotzen!"
-
@Gregor
Hab den Kaffee Link gefunden (war ja auch eigentlich nicht zu schwer ;))
http://www.kaffe.org/schau es dir mal bitte an und sag mir, was du davon hälst.
-
Was ich von Kaffe halte?!
Ich habe mich jetzt nur mal ein bischen auf der Seite umgeschaut, kann mir also eigentlich noch kein richtiges Bild machen. Ich habe aber bis jetzt den Eindruck, dass Kaffe zwar vielversprechend ist, momentan aber wohl noch keine ernsthafte Alternative zur Sun JVM. In der Liste mit den Bugs stehen doch einige Bugs, die häufiger Probleme bereiten sollten. Die Performance kommt nach einem kurzen Überfliegen der Diagramme auch noch nicht an die Sun JVM heran,...!
Generell halte ich eine Alternative zu Sun für gut und wichtig. Eine Alternative sollte aber möglichst 100% kompatibel sein, was Kaffe momentan noch nicht ist. Ich hoffe mal, das wird noch.
Ich habe da auch keine Angabe gesehen, mit welcher Sun JVM Kaffe momentan vergleichbar ist.
OK! Was willst du eigentlich genau wissen? ...und warum hast du so ein großes Interesse an Kaffe?!
PS : Gibt es Kaffe eigentlich für WinXP? Ich habe es zumindest nicht gefunden! ...dann würde ich das mal mit meinem aktuellen Projekt testen.