C# Win Forms OHNE .NET Framework, möglich?

Kantholy

Lt. Junior Grade
Registriert
Aug. 2006
Beiträge
323
Hi, eigentlich sagt die Überschrift ja schon alles:


und zwar ist mir aufgefallen, dass meine Winform-apps immer recht viel Speicher brauchen - grundlos, obwohl die nix tun...

Meine Vermutung ist, dass dies am verwendeten .NET liegt, weil wenn ich mir so manch andere Programme anseh brauchen die wesentlich weniger Speicher bei einer extrem größeren Funktionalität...

Ein Beispiel, ein erstelltes Programm von mir - Windows App - startet beim starten des programms 3 threads, jeder dieses threads checkt jede sekunde ob ein bestimmter Prozess läuft...

also klassisch:

Code:
            for (; ; )
            {
                    if (ProcessIsOpen(parameter.toString()))
                    {
                        ReportID = Log2Server(parameter.ToString());
                        //MessageBox.Show(ReportID);
                    }
                    break;
#region blahblah
#endregion
                Threading.Thread.Sleep(1000);
            }

das Teil wird beim starten auch minimiert und einfach nicht in der Taskleiste angezeigt, sodass das einfach nur schön mitprotokolliert und ggf. eine Messagebox auftaucht...

jedenfalls, dieses klitzekleine Programm frisst laut taskmanager über 13mb speicher - was meiner ansicht nach nicht sein kann....

So, gibts also eine Möglichkeit das ganze auch OHNE .Net zu machen, sowohl aufgrund der Speichernutzung, als auch aufgrund des benötigten Frameworks?!


Oder muss ich eine neue Programmiersprache lernen?
 
Windows Forms gab es glaube ich auch schon bei den Vorgönger von .NET, VisualBasic X (weiß grad nicht was das letzte war bis .NET kam). Damit sollte es gehen, musst halt auf C# verzichten...
 
also gegen visual basic wehre ich mich... gibts keine alternative? C oder cpp oder so - oder benutzt der ganze crap auch schon .NET?
 
Hi,

das liegt nichtan WinForms. Click mal den Minimierenbutton an, dann sinds bestimmt nur noch 500 KB Speicherverbrauch! Skype braucht bei geladener GUI ~50MB Speciher. Wenn man die GUI "weg-X't", bleibt Skype im Hintergrund an und verbraucht immer noch 50 MB Speicher, clickst du aber nicht aufs X sonder auf minimieren, sinds auch bloß noch n paar KB. Beit MS Outlook exakt das selber!! Probiers mal aus!
 
Du kannst natürlich mit C++ direkt mit der Windows API zeichnen. Aber Spaß macht das keinen. ;)
Die Möglichkeiten des .NET Frameworks kommen eben nicht ohne Preis.

Außerdem muss ich Haegarcb recht geben: Ich hab hier eine Windows Forms Anwendung mit relativ einfacher UI. Die verbraucht geöffnet knappt 18 MB RAM. Beim Klick auf minimieren sinkt der Speicherbedarf auf 788 KB.
Wenn deine Anwendung im minimierten Zustand 13 MB verbraucht liegt das nicht an Windows Forms sondern an deinem Code. Und Code der in 3 Threads jede Sekunden eine Schleife durchläuft und etwas protokolliert verbraucht nun mal Ressourcen.

Wenn du minimalen Speicherbedarf willst: Guter C++ Code. Schlechter C++ Code kann nämlich auch bedeutend langsamer und ressourcenfressender sein als durchschnittlicher .NET Code.
 
kann man ressourcen sparen wenn man am anfang die "using System.XXX" weglässt und im Code dann eben System.XXX.YYY benutzt?
 
geil, eine konsolenanwendung, die lediglich Environment.TickCount ausgibt, braucht 4MB Ram!!!!
 
Mit MFC kannst Du auch Forms zeichnen. Wenn Du .net nciht verwenden willst
 
Windows Forms ist ja nur der Name den .Net dem gibt.
So wie mit .Net geht's eben nur mit .Net (logisch oder?).
Und der hohe Verbrauch liegt meist am Programm. Allerdings solltest du dir vielleicht auch Gedanken machen ob dich ein paar MB mehr stören bei einer "normalen" RAM-Größe von mehr als 1 GB. Oder ob dir das den Mehraufwand wert ist den du mit anderen GUI Frameworks evtl. hast.
 
Zurück
Oben