Java vs. C. Performance-Vergleich



  • Steffo schrieb:

    Wie auch immer, hat aber nichts gebracht.

    Es hat gebracht, daß wir über den Zweifel erhaben sind, bewußt unfair gemessen zu haben. Das ist enorm viel, finde ich.



  • volkard schrieb:

    Steffo schrieb:

    Wie auch immer, hat aber nichts gebracht.

    Es hat gebracht, daß wir über den Zweifel erhaben sind, bewußt unfair gemessen zu haben. Das ist enorm viel, finde ich.

    Wie gesagt, ich sehe das anders. Dein Beispiel mit den verschiedenen Exe-Dateien mag bei x86 und x64 Architekturen in der Praxis stimmen, aber eine feinere Abstimmung wirst du nicht vorfinden, deshalb halte ich nicht all zu sehr von zu viel Theoretisierung - das ist ein beliebtes Mittel von Lobbyisten und Marketing-Leuten, aber nicht von Leuten, die mit beiden Beinen auf dem Boden bleiben.

    EDIT: Außerdem ist der Source frei verfügbar. Es steht jedem zu selbst zu messen, um sein eigenes Urteil zu bilden.

    L. G.
    Steffo



  • Einen Vorschlag zur Güte: Du testest immer beides, dann können wir nebenbei noch abschätzen wieviel die zusätzliche Optimierung bringen würde



  • Bei mir siehts aktuell interessanterweise so aus:

    $ time java Main

    real 0m0.253s
    user 0m0.283s
    sys 0m0.052s

    $ time ./prog
    3.14159

    real 0m0.605s
    user 0m0.513s
    sys 0m0.004s

    Beide mit 10k.



  • Hast du was am Code geändert?



  • Ich habe alles in eine Code-Datei gesteckt und die 2 public bei den Klassen weggemacht, ansonsten nichts. Allerdings sehe ich gerade, dass bei Java gar keine Ausgabe ist. Irgendwas ist da falsch.



  • Steffo schrieb:

    Wie gesagt, ich sehe das anders. Dein Beispiel mit den verschiedenen Exe-Dateien mag bei x86 und x64 Architekturen in der Praxis stimmen, aber eine feinere Abstimmung wirst du nicht vorfinden,

    WEIL im fertigen Game nur 1% rauskommt.

    Steffo schrieb:

    deshalb halte ich nicht all zu sehr von zu viel Theoretisierung

    Wir theoretisieren mit diesen künstlichen Test-Programmen. Da kann es schon vorkommen, daß memcpy ohne oder mit SSE gigantisch auseinanderliegen. WÜRDE man ein Programm verkaufen, das so künstlich ist wie unsere Testprogramme, und WÜRDE es einen deutlichen Unterschied machen, dann würde man auch 12 exe auf die DVD tun.

    Steffo schrieb:

    das ist ein beliebtes Mittel von Lobbyisten und Marketing-Leuten, aber nicht von Leuten, die mit beiden Beinen auf dem Boden bleiben.

    Mußt Du mich wirklich jetzt antrollen? Ich dachte, Du hättest Dich vorhin nur von PI reinziehen lassen. Das jetzt ist aber offensiv. Nee, mach das nicht. Wir haben wenig genug Leute, die nachdenken können UND oft nett bleiben. Dich hatte ich als Neuentdeckung im Auge, nachdem PI mich so enttäuscht hat.



  • @volkard: Ganz ruhig, ich wollte dich nicht antrollen. 🙂
    Deine Argumente kann ich nachvollziehen, danke.

    @Pi: Ich habe meine Tests in einer VM gemacht. Keine Ahnung, wie relevant das ist.

    L. G.
    Steffo



  • Seltsamerweise bekomme ich in der Eclipse eine Ausgabe. Ich habe es nun mit System.currentTimeMillis() gemacht, die Ausgabe sieht wie folgt aus:

    3.14159053
    1.001

    @volkard: Wodurch habe ich dich enttäuscht?

    Edit: Nachdem ich das Programm jetzt mehrmals gestartet habe, ging die Zeit von Java stark hinunter:

    3.14159053
    0.667

    Edit 2:
    Neuer Versuch, diesmal mit 100.000 (zugegebenermaßen habe ich keine Ahnung, wie sich das auf das Programm auswirkt, oder warum das Ergebnis falsch ist.)

    $ time ./prog
    -1.003

    real 0m49.951s
    user 0m49.841s
    sys 0m0.069s

    -1.0029964730543903
    64.401



  • 314159265358979 schrieb:

    Ich habe alles in eine Code-Datei gesteckt und die 2 public bei den Klassen weggemacht, ansonsten nichts. Allerdings sehe ich gerade, dass bei Java gar keine Ausgabe ist. Irgendwas ist da falsch.

    Habe ich auch mal ausprobiert, hat aber bei mir nichts gebracht.



  • 314159265358979 schrieb:

    zugegebenermaßen habe ich keine Ahnung, wie sich das auf das Programm auswirkt, oder warum das Ergebnis falsch ist.

    (105)2, was im Konstruktor von Pi berechnet wird, ist größer als 2^31.



  • Michael E. schrieb:

    314159265358979 schrieb:

    zugegebenermaßen habe ich keine Ahnung, wie sich das auf das Programm auswirkt, oder warum das Ergebnis falsch ist.

    (105)2, was im Konstruktor von Pi berechnet wird, ist größer als 2^31.

    Das muss jetzt aber für PI ziemlich erniedrigend sein. Schließlich hat er dich als dumm bezeichnet. 🙂



  • Steffo schrieb:

    Schließlich hat er dich als dumm bezeichnet. 🙂

    Habe ich nicht. Und wieder eine absichtliche Umformulierung. Und dann sagt mir volkard, ich soll nicht so aggressiv sein.



  • 314159265358979 schrieb:

    Steffo schrieb:

    Schließlich hat er dich als dumm bezeichnet. 🙂

    Habe ich nicht. Und wieder eine absichtliche Umformulierung. Und dann sagt mir volkard, ich soll nicht so aggressiv sein.

    OK, ich korrigiere mich, du hast ihn nur als "unglaublich blöd" und "ignoranten Trottel" bezeichnet.

    314159265358979 schrieb:

    Falsch, ich vergleiche noch gar nichts. Und wenn du nicht so unglaublich blöd wärst, hättest du dir denken können, dass das Resultat mit Java gleich kommt. Aber hauptsache gleich mal auf PI drauf, dabei hast du ja nichts zu befürchten, richtig? 🙄

    314159265358979 schrieb:

    Michael E. schrieb:

    314159265358979 schrieb:

    @Steffo: Nö, eine Minute schneller.

    ROFL 🤡 Weswegen hast du mich noch gleich beleidigt?

    Genau das meine ich. Ignoranter Trottel.

    Ich wollte dir nur zeigen wie unglaublich schnell solche Beleidigungen nach hinten gehen können und dass du das nächste mal besser überlegst bevor du irgendetwas auf die Tasten haust. - Das nur mal so als Tipp.

    L. G.
    Steffo



  • 314159265358979 schrieb:

    @volkard: Wodurch habe ich dich enttäuscht?

    Du reißt die Klappe zu weit auf. Das wäre ja nicht schlimm, wenn Du so oft auch recht hättest. Aber das ist nicht der Fall. Du hast nur die Sprache an sich im Kopf. Ich habe noch keinen gesehen, der sie so schnell lernt, wie Du (Lob!). Aber das ist nur die Sprache. Du hast Null Erfahrung. Wenn Du jemanden wie Michael E., Gregor, Jester, Bashar oder so anpflaumst, weil Du annimmst, daß man etwas eher so machen sollte, aber sie mit 10+ Jahren Erfahrung inzwischen wissen, daß man es doch anders machen sollte, und Du dann die untere Schublade aufmachst, das ist nicht gut. Es ist auch nicht gut, wenn ein Nube im Forum was fragt und Du ihm Deine Weisheiten kundtust, wie er seine Architektur überarbeiten sollte. Du weißt einfach noch nicht, wie man Programme baut, die man längere Zeit warten kann oder die man verkaufen kann. Kannste auch nicht. Es gibt keinen Königsweg zur Programmierung. Man muß es wohl tun und aus Fehlern lernen. Vermutlich. Vielleicht findet mal jemand einen Königsweg zur Programmierung und nebenbei einen Königsweg zur Mathematik. Aber seit 2000 Jahren sind wir am Suchen und haben noch keinen gefunden. Es gibt gute Bücher wie von Meyers und schlechte Bücher wie von Wolf. Wolf denkt vermutlich, er habe die Weisheit mit Löffeln gefressen. Er hat keine Kontrollinstanz, der er glauben würde. Uih, das könnte uns allen passieren. Mach Dir mal Gedanken. Wieviele Projekte sind Dir schon umgekippt? Was haste draus gelernt? Noch nichts. Ätsch.
    Mach weiter so mit dem schnellen Lernen! Du kannst in 5 Jahren schaffen, wofür ich 10 Jahre brauchte. Oh, ich war auch ein vorlauter Hansel und wurde von eldermen gelegentlich zurückgepfiffen. Aber ich hatte nie mir den Ruf erarbeitet, ein Troll zu sein. So weit bist Du aber schon. Das ist nicht gut. Du mußt doch auch selber bemerken, wie die Reaktionen auf Dich sind. Da stimmt doch was nicht.



  • Michael E. schrieb:

    314159265358979 schrieb:

    zugegebenermaßen habe ich keine Ahnung, wie sich das auf das Programm auswirkt, oder warum das Ergebnis falsch ist.

    (105)2, was im Konstruktor von Pi berechnet wird, ist größer als 2^31.

    Die Anzahl der Treffer läuft sogar schon früher über. Denn man hat pi*r^2 Treffer. Damit das kleiner als 2^31 ist, muss r <= 26145 sein.



  • volkard schrieb:

    Ich habe noch keinen gesehen, der sie so schnell lernt, wie Du (Lob!).

    Mir kommt es eher so vor, als ob mein Lernfortschritt momentan stillsteht. Habe nicht das Gefühl, dass ich besonders dazulerne.

    volkard schrieb:

    Es ist auch nicht gut, wenn ein Nube im Forum was fragt und Du ihm Deine Weisheiten kundtust, wie er seine Architektur überarbeiten sollte.

    In letzter Zeit habe ich mich bemüht, gerade darauf zu achten. Kannst du mir Beispiele zeigen, wo ich so reagiert habe?

    volkard schrieb:

    Aber ich hatte nie mir den Ruf erarbeitet, ein Troll zu sein. So weit bist Du aber schon. Das ist nicht gut. Du mußt doch auch selber bemerken, wie die Reaktionen auf Dich sind. Da stimmt doch was nicht.

    Natürlich stimmt da was nicht. Aber kannst du mir sagen, wie ich da wieder raus kommen soll? Ich sehe eigentlich keinen Weg. So viel Mühe ich mir auch gebe (und das habe ich schon mehrmals versucht), die Leute suchen trotzdem nach dem kleinsten Fehler. Und wenn kein Fehler gefunden wird, wird nach dem am einfachst missinterpretierbaren gesucht. Was soll ich denn da tun? Ich würde gerne meinen Ruf verbessern, aber die Leute müssen das auch zulassen.



  • 314159265358979 schrieb:

    Natürlich stimmt da was nicht. Aber kannst du mir sagen, wie ich da wieder raus kommen soll? Ich sehe eigentlich keinen Weg. So viel Mühe ich mir auch gebe (und das habe ich schon mehrmals versucht), die Leute suchen trotzdem nach dem kleinsten Fehler. Und wenn kein Fehler gefunden wird, wird nach dem am einfachst missinterpretierbaren gesucht. Was soll ich denn da tun? Ich würde gerne meinen Ruf verbessern, aber die Leute müssen das auch zulassen.

    Ich bin hier im Forum absolut neu und ich habe dich heute als Troll kennengelernt. Da gab es nichts zu suchen, um dich in eine Schublade zu stecken. Deine Beiträge lesen sich hinterher so als ob dir gar nicht bewusst sei, was du da eigentlich schreibst. Ich schlage dir vor, du liest den Thread ab Seite 10 nochmals durch...

    L. G.
    Steffo



  • Steffo schrieb:

    Ich bin hier im Forum absolut neu und ich habe dich heute als Troll kennengelernt. Da gab es nichts zu suchen, um dich in eine Schublade zu stecken. Deine Beiträge lesen sich hinterher so als ob dir gar nicht bewusst sei, was du da eigentlich schreibst. Ich schlage dir vor, du liest den Thread ab Seite 10 nochmals durch...

    L. G.
    Steffo

    Was du heute kennengelernt hast, war der besonders schlecht gelaunte, vom RL geplagte PI. Mein Verhalten heute war scheiße, das sehe ich auch ein. Aber das ist nicht immer so.



  • 314159265358979 schrieb:

    Was du heute kennengelernt hast, war der besonders schlecht gelaunte, vom RL geplagte PI. Mein Verhalten heute war scheiße, das sehe ich auch ein. Aber das ist nicht immer so.

    Tja, ich habe kein Problem den Resetknopf zwischen uns beiden zu drücken, ich denke, bei dem Rest hier sieht das nicht anders aus. Wenn du lernst Schwächen anderer zu akzeptieren, wirst du auch deine Schwächen akzeptieren und dann wirst du auch angemessener anderen Leuten gegenüber antworten können.

    L. G.
    Steffo


Anmelden zum Antworten