Autor Beitrag
EinHauchvonTyll
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 09.08.11 10:10 
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
" megos.wordpress.com/...-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 www.mathworks.de/

4) Welche Möglichkeiten gibt es, unter Windows in C++ GUIs zu programmieren?
pdelvo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 55
Erhaltene Danke: 11



BeitragVerfasst: Di 09.08.11 11:11 
user profile iconEinHauchvonTyll hat folgendes geschrieben Zum zitierten Posting springen:
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
" megos.wordpress.com/...-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 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 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 55
Erhaltene Danke: 11



BeitragVerfasst: Di 09.08.11 12:46 
Du kannst dir ja mal diesen Artikel durchlesen. Dort werden ein paar interessante Punkte angesprochen: 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
ausblenden 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. www.codeproject.com/...otnet/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++ 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 user profile iconTh69: Full-Quote entfernt.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 55
Erhaltene Danke: 11



BeitragVerfasst: 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
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 09.08.11 16:50 
Hi zusammen,

hier mal ein paar Links zum Thema Bildverarbeitung in C#/.NET:
GetPixel und SetPixel um Längen geschlagen. 800 mal schneller
Bitmap-Manipulation (MemBitmap)
LowLevelGraphicsLibrary

Und zum Darstellen von Funktionen bietet sich z.B. die ZedGraph-Library an (aber nicht unbedingt in Echtzeit).