Entwickler-Ecke
C# - Die Sprache - Grundlegende fragen zu C#
EinHauchvonTyll - Di 09.08.11 10:10
Titel: Grundlegende fragen zu C#
Hallo Leute,
wie schon im Titel beschrieben habe ich ein paar Fragen zu C#
1) Kann man C++ mit C# in der Performance vergleichen(ist C# Echtzeit fähig)?
Dazu habe ich auch bereit einen Bericht gefunden im Internet
"
http://megos.wordpress.com/2009/06/06/die-performance-von-c-sharp-programmen/ "
aber gibt es weitere Fundstellen im Internet, die die Aussagen dieses Berichts bestätigen?
2) Kann man eine C++-Funktion aus C# aufrufen?
3) Kann man bei C# auch plotten ? Ähnlich wie in MATLAB oder ist das wesentlich Aufwendiger ?
Zum Beispiel ein Sensorsignal über die Zeit Grafisch dar zu stellen.
Seite zu MATLAB
http://www.mathworks.de/
4) Welche Möglichkeiten gibt es, unter Windows in C++ GUIs zu programmieren?
pdelvo - Di 09.08.11 11:11
EinHauchvonTyll hat folgendes geschrieben : |
Hallo Leute,
wie schon im Titel beschrieben habe ich ein paar Fragen zu C#
1) Kann man C++ mit C# in der Performance vergleichen(ist C# Echtzeit fähig)?
Dazu habe ich auch bereit einen Bericht gefunden im Internet
" http://megos.wordpress.com/2009/06/06/die-performance-von-c-sharp-programmen/ "
aber gibt es weitere Fundstellen im Internet, die die Aussagen dieses Berichts bestätigen?
2) Kann man eine C++-Funktion aus C# aufrufen?
3) Kann man bei C# auch plotten ? Ähnlich wie in MATLAB oder ist das wesentlich Aufwendiger ?
Zum Beispiel ein Sensorsignal über die Zeit Grafisch dar zu stellen.
Seite zu MATLAB http://www.mathworks.de/
4) Welche Möglichkeiten gibt es, unter Windows in C++ GUIs zu programmieren? |
1) Windows ist nicht Echtzeitfähig. Mittlerweile kann man die performance von einer Managed Anwendung mit einer Nativen vergleichen. Wenn der Code vom JIT Compiler in Nativen bei der Ausführung kompiliert wird, wird er sofort auf die jeweilige Plattform optimiert, was bei C++ nicht geht.
2) Ja
3) Natürlich kann man das. Da gibt es einige nette Bibliotheken zu
4) Ja
EinHauchvonTyll - Di 09.08.11 12:16
| Zitat: |
Danke erst mal für die schnelle Antwort nur sind meine Fragen nochnicht komplett beantwortet.
Und ich habe noch eine weitere unter 5)
1) Windows ist nicht Echtzeitfähig. Mittlerweile kann man die performance von einer Managed Anwendung mit einer Nativen
vergleichen. Wenn der Code vom JIT Compiler in Nativen bei der Ausführung kompiliert wird, wird er sofort auf die
jeweilige Plattform optimiert, was bei C++ nicht geht.
2) Ja
3) Natürlich kann man das. Da gibt es einige nette Bibliotheken zu
4) Ja
|
1) Ich weiß nicht ob du den Bericht von dem Link gelesen hast aber darin geht es Hauptsächlich um den vergleich
Performance C++ - C#. Und jetzt würde ich halt gerne wissen ob es dazu auch weitere Berichte, Analysen gibt die diese
Behauptungen bestätigen oder wiederlegen. Da ich selber keine stichhaltigen gefunden habe.
2) Hast du dazu vielleicht einen Link mit einem Beispiel.
3) Das es solche Bibliotheken gibt war mir schon bekannt nur sind diese auch ähnlich einfach zu nutzen wie
Matlab. Habe mich da vielleicht ein wenig undeutlich ausgedrückt. Und welche Biblioteken sind zu empfehlen.
4) Sind diese GUIs auch so leicht zu implementieren wie in C#
5) Eignet sich C# auch zu schnellen bearbeitung von Bildern wie z.B von Überwachungskameras. Wobei sehr schnell große
Datenmengen auftretten.
pdelvo - Di 09.08.11 12:46
Du kannst dir ja mal diesen Artikel durchlesen. Dort werden ein paar interessante Punkte angesprochen:
http://www.codeproject.com/KB/cs/CSharpVsCPP.aspx
Native Methoden zu nutzen ist relativ einfach. Kannst ja mal nach "Dllimport" suchen. Oder hier ein Beispiel, wie sowas aussehen kann. Eine gute quelle für solche Signaturen ist z.B. pinvoke.net
C#-Quelltext
1: 2:
| [DllImport("kernel32", SetLastError=true, CharSet = CharSet.Unicode)] static extern IntPtr LoadLibrary(string lpFileName); |
Wie ich sehe, kannst du sogar MathLab in C# nutzen.
http://www.codeproject.com/KB/dotnet/matlabeng.aspx
Ich bin kein C++ Entwickler. Habe mir das ganze aber auch mal angesehen. Hier gibts ein paar Infos zur GUI Programmierung mit C++
http://www.cpp-tutor.de/
Das sollte aber bei weitem Fehleranfälliger sein als die C# Variante mit Windows Forms ode WPF
Was heißt in deinem Fall "bearbeiten", wie viele Bilder pro Sekunde sind das ca.? Über welche Datenmengen sprechen wir dabei?
Generell kann man auch sowas mit C# machen.
Moderiert von
Th69: Full-Quote entfernt.
Ralf Jansen - Di 09.08.11 13:33
| Zitat: |
Und jetzt würde ich halt gerne wissen ob es dazu auch weitere Berichte, Analysen gibt die diese
Behauptungen bestätigen oder wiederlegen |
Was nutzt es? Jede Analyse die du finden wirst wird sich um spezielle Problemkreise drehen. Je nach Auswahl wird das ein oder das andere gewinnen(oder es ist egal). Du musst schon ein konkretes Problemfeld benennen über das man dann eine Aussage bzw. eher Vermutung treffen kann. Letztlich kommt es dann auch eher drauf an wie du programmierst als mit was. Mit einem c++-Mindset wird man vermutlich in .Net Probleme bekommen. Letztlich solltest du es mit einem typischen Problem aus deiner Problemsphäre einfach mal Beispielhaft ausprobieren und die Ergebnis nachher dahingehend überprüfen ob du eine für die Sprache/das System geeignete Lösungsstrategie gewählt hast (Da können wir dann auch wieder helfen). Wenn es dir um die angesprochene Bildbearbeitung geht solltest du es ebenfalls einfach mal ausprobieren. Das visuelle gilt performanceemäßig in .Net üblicherweise nicht unbedingt als Stärke (Stichwort GDI+) aber es gibt auch Anwendungen die das ordentlich hinbekommen (siehe Paint.Net)
Dir ist bewusst wenn du C++ und C# vergleichst das es auch C++/CLR gibt? Wo du dann mindestens die gleichen Möglichkeiten/Einschränkungen hast wie mit C#.
pdelvo - Di 09.08.11 16:11
GDI+ ist sowohl in .net, als auch unmanaged langsam. Mit entsprechenden Komponenten kann man diese performance locker toppen. Ich spreche hier über den Faktor 800x (oder sogar noch was mehr) schneller
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!