1. Foren
  2. » Kommentare
  3. » OpenSource
  4. » Alle Kommentare zum Artikel
  5. » Xamarin: Android mit C# - ohne Java

Structs?

Anzeige
  1. Thema

Neues Thema Ansicht wechseln


  1. Structs?

    Autor andi_lala 02.05.12 - 23:30

    Weiß jemand zufällig, wie sie mit dem automatischen Übersetzen sinnvoll Structs erzeugt haben? Ich stell mir das nämlich nicht ganz so trivial vor.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  2. Re: Structs?

    Autor Hello_World 02.05.12 - 23:52

    Wieso sollten sie das überhaupt tun? Sie übersetzen von Java nach C# und Java kennt keine structs, also gibt es auch keinen Bedarf dafür im Kompilat.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  3. Re: Structs?

    Autor andi_lala 03.05.12 - 03:51

    Es geht ja darum, dass Java automatisch in C# Code übersetzt wurde und dadurch ein Performancegewinn entstanden ist. Der Blog-Post von Xamarin zeigt nun in einer Grafik einen Performancevergleich von einem einfachen Binärbaum in Java und C#. Dabei wurden Generics und Structs (in C#) eingesetzt. Die Mono Performance war dabei um ein vielfaches schneller als die Dalviks.

    Mir ist schon klar, dass es in Java keine Structs gibt, aber mit einer (sehr) schlauen statischen Analyse könnte man eventuell automatisch Klassen in Structs umwandeln. Dadurch würde man (wenn richtig eingesetzt) wieder deutlich Performance gewinnen.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  4. Re: Structs?

    Autor Geistesgegenwart 03.05.12 - 08:23

    Klassen, welche keine Methoden enthalten sondern nur Attribute (und ggf. primitive getter/setter), könnten bei der Umwandlung zu C# structs gewandelt werden. Ich vermute mal dass sowieso keine Rücksicht auf Vererbbarkeit gelegt wurde, sofern nicht im ICS Code explizit vorhanden.

    Wenn dass der Fall wäre hätte Xamarin aber bei den Benchmarks leicht beschissen, den structs sind in C# werttypen und natürlich geeigneter für einen Graphenbenchmark.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  5. Re: Structs?

    Autor bstea 03.05.12 - 09:13

    Hier der Quellcode der Benchmarks:
    https://github.com/zanew/MonovsDalvik/blob/master/BintreesDalvik/src/bintrees/dalvik/BintreesDalvikActivity.java
    https://github.com/zanew/MonovsDalvik/blob/master/BintreesMonoDroid/BintreesMonoDroid/BintreesMonodroidActivity.cs

    Unterscheiden sich alg. nicht wirklich.

    --
    http://www.heise.de/open/meldung/Linux-auf-dem-Desktop-Europa-fuehrt-1243708.html
    http://www.heise.de/newsticker/meldung/Immer-mehr-Linux-auf-dem-Desktop-1404775.html

    Benutzer wird von Ihnen ignoriert. Anzeigen

  6. Re: Structs?

    Autor andi_lala 03.05.12 - 16:47

    Wieso wäre das denn bitte Betrug?
    Java unterstützt viele solcher Dinge nicht, die C# hat, welche die Performance verbessern. Wenn sie es geschafft haben sinnvoll manche Klassen als Structs umzuwandeln, warum sollte das dann Betrug sein? Dass die Entwicklung von Java (der Sprache jedenfalls) in den letzten 5-6 Jahren fast stehengeblieben ist, dafür können ja die Jungs von Xamarin nichts. Ansonsten wär es ja auch Betrug, wenn sie Generics verwenden, denn die Java Generics sind ja nichts anderes als statische Überprüfung + Typ-Entfernung (auf Object setzen) und Casts zur Laufzeit im Unterschied zu C#, welches ohne Casts auskommt.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  7. Re: Structs?

    Autor andi_lala 03.05.12 - 16:57

    Naja Treenode ist in der C# Variante ein Struct statt eine Klasse. Das kann bezüglich der Performance schon etwas ausmachen.

    Benutzer wird von Ihnen ignoriert. Anzeigen

  8. Re: Structs?

    Autor bstea 03.05.12 - 17:15

    Instanzieren für next musst du trotzdem.
    Aber wer weiß wie Google die VM optimiert hat. Es nützt keinen etwas, wenn die Akku innerhalb weniger Stunden leergesaugt wird, dafür aber die max. Geschwindigkeit rausgeholt wurden ist.

    --
    http://www.heise.de/open/meldung/Linux-auf-dem-Desktop-Europa-fuehrt-1243708.html
    http://www.heise.de/newsticker/meldung/Immer-mehr-Linux-auf-dem-Desktop-1404775.html

    Benutzer wird von Ihnen ignoriert. Anzeigen

  9. Re: Structs?

    Autor andi_lala 03.05.12 - 21:16

    Der Vorteil von Structs ist ja nicht das Instanziieren, sondern die schnelleren Zugriffe auf Attribute und Methoden, da nicht zuerst eine Referenz aufgelöst werden muss.

    Benutzer wird von Ihnen ignoriert. Anzeigen

Neues Thema Ansicht wechseln


Entschuldigung, nur registrierte Benutzer dürfen in diesem Forum schreiben. Klicken Sie hier um sich einzuloggen

Tallinn-Manual: Regierung äußert sich zu Nato-Regeln zum Töten von Hackern
Tallinn-Manual
Regierung äußert sich zu Nato-Regeln zum Töten von Hackern

Das Tallinn-Manual der Nato, das im Cyberwar das Töten von Hackern erlaubt, beschäftigt jetzt auch die Bundesregierung. "Es obliegt nicht der Bundesregierung, eine breite gesellschaftliche Debatte über die Regeln zu führen", heißt es trocken.

  1. Cyberwar Experten halten Stuxnet-Einsatz für Gewaltanwendung
  2. Cyberwar BND errichtet Abteilung zur Abwehr von Hackerangriffen
  3. Cyber Defense Nato-Papier gibt Hacker zum Abschuss frei

Sandisk und Toshiba: Flash-Speicher wird kleiner
Sandisk und Toshiba
Flash-Speicher wird kleiner

Sandisk und Toshiba kündigen die Einführung eines neuen Herstellungsprozesses für Flash-Speicher an. Der von Sandisk als 1Ynm bezeichnete Prozess bringt mehr Speicherkapazität auf weniger Raum unter.

  1. Flashsystem IBM steckt 1 Milliarde US-Dollar in Flash-Speicher
  2. Fusion-io 9,6 Millionen IOPS mit einem einzelnen ioDrive2

Sailfish-Smartphone: Jolla stellt "The Other Half" vor
Sailfish-Smartphone
Jolla stellt "The Other Half" vor

Jolla hat unter dem Namen "The Other Half" (Die andere Hälfte) sein erstes Smartphone mit dem Meego-Nachfolger Sailfish OS vorgestellt. Die Entwickler von Nokias einzigem Meego-Smartphone N9 bieten "Die andere Hälfte" mit 4,5-Zoll-Display ab sofort zur Vorbestellung an.

  1. Sailfish OS Erste Jolla-Smartphones Anfang Mai erhältlich
  2. Displayserver Wayland 1.1 mit neuen Weston-Backends
  3. Jolla SDK für Sailfish veröffentlicht

  1. Microsoft: Xbox One mit neuer Kinect und Blu-ray-Laufwerk
    Microsoft
    Xbox One mit neuer Kinect und Blu-ray-Laufwerk

    Die nächste Konsole von Microsoft heißt Xbox One. Sie wird mit einer neuen Version der Bewegungssteuerung Kinect ausgeliefert und soll die Unterhaltungszentrale im Wohnzimmer werden. Das Datenblatt verrät erste technische Details, und auch zum Erscheinungstermin hat der Hersteller sich geäußert.

  2. Datennetz: Bundesweite Störung beim mobilen Internet der Telekom
    Datennetz
    Bundesweite Störung beim mobilen Internet der Telekom

    Das mobile Internet der Deutschen Telekom ist bundesweit gestört. Nicht alle Anschlüsse sind betroffen. Laut Telekom ist das Software-Problem inzwischen behoben, es dauere aber einige Zeit, bis alle Verbindungen wieder laufen.

  3. Heavy Gear Assault: Mech-Action auf Basis der Unreal Engine 4
    Heavy Gear Assault
    Mech-Action auf Basis der Unreal Engine 4

    Schon länger arbeitet das Entwicklerstudio Stompy Bot an einer Neuauflage von Heavy Gear als Computerspiel. Jetzt kann die Community das Projekt unterstützen: Via Kickstarter sollen mindestens 800.000 US-Dollar zusammenkommen.


  1. 19:48

  2. 19:04

  3. 18:51

  4. 18:07

  5. 16:48

  6. 16:24

  7. 15:04

  8. 14:17