Nativ vs. Managed
-
Das Forum ist voll mit Prohvis.
-
managed schrieb:
... Es gibt allerdings auch viele Dinge, die bereits VOR der Übersetzung des Programms in Maschinen-/Bytecode geschehen können ...
Jetzt vieleicht, aber wenn MS das Framework dahin gehend anpasst sodass in diesen Breichen optimierungen vorgenommen werden können, könnten diese Programme nicht mehr davon profitieren.
-
Artchi schrieb:
hustbaer schrieb:
Ja, und ICH brauch keinen Gurt weil ICH bau ja auch nie einen Unfall weil ICH kann ja autofahren
Du kannst dich aber anschnallen. Aber tun mußt du es immer noch selber. Komischerweise tun es die meisten heute auch.
Aber der Vergleich hinkt. Wir reden hier von Profi-Programmierern. Und jeder Profi-Autofahrer schnallt sich an, siehe Motorsport. Nein, die Profi-Autofahrer schnallen sich nicht nur einfach an, die setzen auch noch nen Helm auf, ne Nackenstütze, feuerfesten Overall, extra Sicherheitskäfig usw. Halt Profis. Und das kann man auch von einem Profi-Programmierer erwarten, das er ein paar Sicherheitsregeln kennt und nutzt.
Du hast mich falsch verstanden. Ich hatte das ironisch gemeint. Als Antwort auf Ad aCTa's "ich kann ja programmieren und brauch sowas nicht" Kommentar.
-
CSL schrieb:
managed schrieb:
... Es gibt allerdings auch viele Dinge, die bereits VOR der Übersetzung des Programms in Maschinen-/Bytecode geschehen können ...
Jetzt vieleicht, aber wenn MS das Framework dahin gehend anpasst sodass in diesen Breichen optimierungen vorgenommen werden können, könnten diese Programme nicht mehr davon profitieren.
In welchen Bereichen? Ich verstehe nicht was du meinst.
Wie soll Static Code Analysis irgendwas für irgendwelche Programme verschlechtern?
Oder was meinst du?
-
Hallo,
managed schrieb:
Eine virtuelle Maschine sorgt nicht auf magische Weise für eine höhere Stabilität oder höhere Produktivität. Man kann auch eine virtuelle Maschine bauen, die C++ oder C ausführt, das hat nichts mit C# vs C++ zu tun.
ACK
Genauso wie ein Compiler nicht zwangsläufig für höhere Performance sorgt als ein JIT. Mit dem selben Aufwand dürften wohl beide auf ein vergleichbares Ergebnis kommen, der Unterschied ist nur wann dieser Aufwand getrieben wird.managed schrieb:
Intensive Laufzeitüberprüfungen gibt es auch in nativen Code, wie Ada seit etwa 30 Jahren ziemlich beeindruckend zeigt.
Und so viel Performance kostet das gar nicht mal.
managed schrieb:
Es gibt allerdings auch viele Dinge, die bereits VOR der Übersetzung des Programms in Maschinen-/Bytecode geschehen können und damit sogar gleichzeitig Performance, als auch Stabilität verbessern könnten.
Das ist aber kein Argument für oder gegen eine bestimmte Programmiersprache, noch ein Argument bei Compiler vs. VM+JIT.
managed schrieb:
Performance, weil notwendige Berechnungen und Überprüfungen unnötig werden und Stabilität, weil man sich eine kontrolliertere Umgebung schafft, die sich leichter beherrschen lässt.
Was hat das mit VM vs. Native-Executable zu tun? Eine VM hat auch eine Art Befehlssatz den man sogar in Silizium gießen kann. Ich glaube nicht das eine VM so viel besser als eine ordentliche CPU ist. Ich denke hier könnten die CPU-Hersteller möglicherweise noch etwas nachbessern um solche "Standard-Aufgaben" möglichst effizient zu erledigen, das dürfte zwar nur wenig bringen aber es würden wenigstens alle davon profitieren.
Grüße
Erik
-
@erik.vikinger: gibt ja immerhin BOUND bei x86. Weiss aber nicht wie schnell das auf aktuellen CPUs ist.
-
den virtual machines gehört wahrscheinlich die Zukunft, ebenso wie der Emulation allgemein.
Es scheint ein Naturgesetz zu geben - das "zum Beispiel'sche Virtualisierungsgesetz" - der Form, daß alle Hardware, die vernünftig durch Software ersetzt werden kann, früher oder später durch Software ersetzt werden wird.
-
zum Beispiel schrieb:
Es scheint ein Naturgesetz zu geben - das "zum Beispiel'sche Virtualisierungsgesetz" - der Form, daß alle Hardware, die vernünftig durch Software ersetzt werden kann, früher oder später durch Software ersetzt werden wird.
Selten so einen schwachsinn gelesen...
-
zum Beispiel schrieb:
Es scheint ein Naturgesetz zu geben - das "zum Beispiel'sche Virtualisierungsgesetz" - der Form, daß alle Hardware, die vernünftig durch Software ersetzt werden kann, früher oder später durch Software ersetzt werden wird.
Ich sehe ein Naturgesetz darin, dass für jede schnelle CPU, egal wie superschnell sie ist, eine Gegenkraft in Form einer VM existieren muss, damit alles wieder l-a-n-g-s-a-m ausgeführt wird, dafür aber total sicher mit Stacktraces bis ins letzte Bit...
Bei Native Code ist es im Prinzip auch so. Bei Browsern sieht man es oft: Eine Seite geöffnet und sie wird aus dem Speicher gleich auf die Festplatte ausgelagert, damit, wenn der User nach unten scrollt, der Inhalt der Seite von der Festplatte gelesen werden muss, wahrscheinlich auch noch mal geparst, damit das Bild noch mehr ruckt...
-
Stimmt total.
Bei Games ist es ähnlich. Weil ja jeder einen Ultra-1337-PC mit NVidia-Schiforce 42000 und einen i7 Quadrupel-Kor hat, muss man nicht mehr gut programmieren. Siehe zB Empire-Earth 3 - der totale Rückschritt, was Gameplay und Grafik betrifft, und dafür eine gigantische Zunahme an verschwendeter Rechenzeit und Langsamkeit. Wenn ein neues Spiel plötzlich schneller läuft, könnte man es ja für weniger komplex und ausgetüftelt halten.
Doch doch, schöner Fortschritt sowas.
Währenddessen werden Java-Anwendungen auch nicht schneller.
-
hustbaer schrieb:
CSL schrieb:
managed schrieb:
... Es gibt allerdings auch viele Dinge, die bereits VOR der Übersetzung des Programms in Maschinen-/Bytecode geschehen können ...
Jetzt vieleicht, aber wenn MS das Framework dahin gehend anpasst sodass in diesen Breichen optimierungen vorgenommen werden können, könnten diese Programme nicht mehr davon profitieren.
In welchen Bereichen? Ich verstehe nicht was du meinst.
Wie soll Static Code Analysis irgendwas für irgendwelche Programme verschlechtern?
Oder was meinst du?Meinst du mich? Ich bezog mich nur auf den Kommentar von "managed", wo er meinte das es bereiche gibt die direkt übersetzt werden können, darauf hin meinte ich ja nur "jetzt vielleicht"
"managed" geht davon das Teile der applikation bereits komplett übersetzt werden kann, wogegen ich meinte das es jetzt womöglich schon so ist, aber diese Bereiche dann nicht mehr von Neuerungen im .Net Framework profitieren können.
-
@CSL:
Naja, es gibt NGen, das speichert quasi nur das Ergebnis des JITers in irgendeinem Cache-Verzeichnis ab, so dass beim nächsten mal Starten nix neu compiliert werden muss. Funktioniert vollkommen transparent, d.h. man profitiert auch weiterhin von Neuerungen/Fixes/... im Framework.Von MS unterstützte bzw. auch nur unproblematische Lösung, wo das gesamte Programm inklusive Framework zu native Code übersetzt wird, kenne ich keine.
-
Naja in vielem gehört Ideologie und Vermarktung dazu.
Mein Bruder lernt gerade C# in einem Fernstudium wo die sich auch ab und an treffen, was da an "Müll" über den Pösen Nativen Code und ganz extrem Gefährliche Zeiger bzw fehlende Typisierung erzählt, wird vom Dozenten, klingt für mich nach Politisierendem Feindbildaufbau.
Letztlich versuchen MS und auch Java ihre Sprachen an den mann zu bringen, da wird Verkauft, Ideologien und Identifizierung geschaffen.
Persönliche Meinung:
Performance ? Bei den meisten Sachen kommen die Daten doch eh aus der Datenbank die in C geschrieben ist.
Performace bei der Entwicklung mit Sicherheit.
Erste 3d Spiele die ich in .Net gesehen hab bringen jeden High End Rechner zum glühen, vermutlich gilt da ja "Ein paar PS mehr im Rechner" bügeln alles glatt.Wichtigster Punkt, womit komme ich am besten zurecht ? C++ .
Ein interesanntes Projekt fand ich Lamp mal ohne AMP http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/11/LAMP-mal-ohne-AMP .
Nu Zeig mir mal einer eine vergleichbar schnelle Webseite mit Managed Code ....
-
mdmr schrieb:
Ein interesanntes Projekt fand ich Lamp mal ohne AMP http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/11/LAMP-mal-ohne-AMP
Das ist ja wohl ein Witz. Wer meint bei einer Client-Server Anwendung liegt das Bottleneck in der Ausführungsgeschwindigkeit der Serversoftware sollte nochmal die Schulbank drücken, aber das "linux-magazin" lässt wohl jeden mal an die Schreibmaschine.
Davon abgesehen ist der Artikel, ja ich hab ihn tatsächlich durchgelesen, auch wirklich ein Witz: Null Informationen über irgendwelche interessanten Techniken, stattdessen werden trivialste Sachen erläutert, z.B. wie die "Persistenzschicht" (so darf man das nichtmal nennen) aufgebaut wird, und zu allem Überfluss wird noch vorgeschlagen einen eigenen HTTP Server einzubauen. Mensch, hätten die Jungs von eBay den Artikel mal gesehen, da könnten die nochwas lernen, wie man richtige Webanwendungen baut, dann bräuchte man auch nicht auf jede eBay Seite 20 Sekunden warten... (das war ja wohl der größte witz)
Nein ehrlich sorry für den langen Post, aber man braucht nun wirklich kein PHP Verfechter oder C++ Feind zu sein, um den Artikel als Lächerlich entlarven zu können...
-
witzboltt schrieb:
mdmr schrieb:
Ein interesanntes Projekt fand ich Lamp mal ohne AMP http://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/11/LAMP-mal-ohne-AMP
Das ist ja wohl ein Witz. Wer meint bei einer Client-Server Anwendung liegt das Bottleneck in der Ausführungsgeschwindigkeit der Serversoftware sollte nochmal die Schulbank drücken, aber das "linux-magazin" lässt wohl jeden mal an die Schreibmaschine.
Davon abgesehen ist der Artikel, ja ich hab ihn tatsächlich durchgelesen, auch wirklich ein Witz: Null Informationen über irgendwelche interessanten Techniken, stattdessen werden trivialste Sachen erläutert, z.B. wie die "Persistenzschicht" (so darf man das nichtmal nennen) aufgebaut wird, und zu allem Überfluss wird noch vorgeschlagen einen eigenen HTTP Server einzubauen. Mensch, hätten die Jungs von eBay den Artikel mal gesehen, da könnten die nochwas lernen, wie man richtige Webanwendungen baut, dann bräuchte man auch nicht auf jede eBay Seite 20 Sekunden warten... (das war ja wohl der größte witz)
Nein ehrlich sorry für den langen Post, aber man braucht nun wirklich kein PHP Verfechter oder C++ Feind zu sein, um den Artikel als Lächerlich entlarven zu können...
Lies den Artikel einfach nochmal. Und wenn Du damit fertig bist, am besten nochmal.
Und befühle mal http://www.tauschzone.de/
-
Nein, dafür war der Artikel einfach zu uninteressant. Wie man C++ Programmiert weiß ich, wie Webanwendungen aufgebaut sind auch. Mehr Informationen enthält der Artikel nicht. Beim besten Willen...